C المتغير، أنواع البيانات، الثوابت
⚡ ملخص ذكي
تشكل المتغيرات وأنواع البيانات والثوابت أساس كل برنامج مكتوب بلغة C، حيث تخزن المتغيرات القيم القابلة للتغيير، وتحدد أنواع البيانات حجم ونطاق تلك البيانات، بينما تحمل الثوابت قيمًا ثابتة لا تتغير أبدًا.

ما هو المتغير؟
المتغير هو معرف يستخدم لتخزين بعض القيمة. الثوابت لا يمكن أن تتغير أبدا في وقت التنفيذ. يمكن أن تتغير المتغيرات أثناء تنفيذ البرنامج وتحديث القيمة المخزنة بداخله.
يمكن استخدام متغير واحد في مواقع متعددة في البرنامج. يجب أن يكون اسم المتغير ذا معنى. يجب أن يمثل الغرض من المتغير.
Example: Height, age, are the meaningful variables that represent the purpose it is being used for. Height variable can be used to store a height value. Age variable can be used to store the age of a person
يجب الإعلان عن المتغير أولاً قبل استخدامه في مكان ما داخل البرنامج. يتم تشكيل اسم المتغير باستخدام الأحرف والأرقام والشرطة السفلية.
فيما يلي القواعد التي يجب اتباعها أثناء إنشاء متغير:
- يجب أن يتكون اسم المتغير من أحرف وأرقام وشرطة سفلية فقط.
- يجب ألا يبدأ اسم المتغير برقم.
- يجب ألا يتكون اسم المتغير من مسافة بيضاء.
- يجب ألا يتكون اسم المتغير من كلمة أساسية.
- "C" هي لغة حساسة لحالة الأحرف مما يعني أن المتغير المسمى "age" و"AGE" مختلفان.
فيما يلي أمثلة لأسماء المتغيرات الصالحة في برنامج "C":
height or HEIGHT
_height
_height1
My_name
فيما يلي أمثلة لأسماء المتغيرات غير الصالحة في برنامج "C":
1height Hei$ght My name
على سبيل المثال، نقوم بتعريف متغير عدد صحيح my_variable ونسند إليه القيمة 48:
int my_variable;
my_variable = 48;
بالمناسبة، يمكننا الإعلان عن متغير وتهيئته (تعيين قيمة أولية) في عبارة واحدة:
int my_variable = 48;
أنواع البيانات
توفر لغة "C" أنواعًا مختلفة من البيانات لتسهيل اختيار نوع البيانات المناسب للمبرمج وفقًا لمتطلبات التطبيق. فيما يلي أنواع البيانات الثلاثة:
- أنواع البيانات البدائية
- أنواع البيانات المشتقة
- أنواع البيانات المعرفة من قبل المستخدم
هناك خمسة أنواع أساسية من البيانات الأساسية،
- int للبيانات الصحيحة
- شار لبيانات الشخصية
- تعويم للأرقام ذات الفاصلة العائمة
- مزدوج للأرقام ذات النقطة العائمة ذات الدقة المزدوجة
- باطل
تُعدّ المصفوفات والدوال والمؤشرات والهياكل أنواع بيانات مشتقة. توفر لغة C إصدارات موسعة من أنواع البيانات الأساسية المذكورة أعلاه. يختلف كل نوع بيانات عن الآخر في الحجم والنطاق. يعرض الجدول التالي حجم ونطاق كل نوع بيانات.
| نوع البيانات | الحجم بالبايت | المدى |
| شار أو شار موقعة | 1 | -128 ل127 |
| حرف غير موقعة | 1 | 0 إلى 255 |
| كثافة العمليات أو تسجيل الدخول | 2 | -32768 ل32767 |
| عدد صحيح غير موقعة | 2 | 0 إلى 65535 |
| كثافة العمليات القصيرة أو كثافة العمليات القصيرة غير الموقعة | 2 | 0 إلى 255 |
| وقعت قصيرة كثافة العمليات | 2 | -128 ل127 |
| كثافة العمليات طويلة أو موقعة طويلة كثافة العمليات | 4 | -2147483648 ل2147483647 |
| كثافة العمليات الطويلة غير الموقعة | 4 | 0 إلى 4294967295 |
| الطفو | 4 | 3.4E-38 إلى 3.4E + 38 |
| مضاعفة | 8 | 1.7E-308 إلى 1.7E + 308 |
| طويل مزدوج | 10 | 3.4E-4932 إلى 1.1E + 4932 |
ملاحظة: في لغة C، لا يوجد نوع بيانات منطقي (Boolean).
نوع البيانات الصحيح
العدد الصحيح ليس سوى عدد صحيح. يختلف النطاق الخاص بنوع البيانات الصحيح من جهاز إلى آخر. النطاق القياسي لنوع البيانات الصحيح هو -32768 إلى 32767.
عادةً ما يكون العدد الصحيح 2 بايت مما يعني أنه يستهلك إجمالي 16 بت في الذاكرة. تأخذ القيمة الصحيحة الواحدة 2 بايت من الذاكرة. يتم تقسيم نوع البيانات الصحيح أيضًا إلى أنواع بيانات أخرى مثل Short int وint وlong int.
يختلف كل نوع بيانات في النطاق على الرغم من أنه ينتمي إلى عائلة أنواع البيانات الصحيحة. قد لا يتغير الحجم لكل نوع بيانات من عائلة الأعداد الصحيحة.
يتم استخدام int القصير في الغالب لتخزين الأرقام الصغيرة، ويتم استخدام int لتخزين قيم الأعداد الصحيحة متوسطة الحجم، ويتم استخدام int الطويل لتخزين قيم الأعداد الصحيحة الكبيرة.
عندما نرغب في استخدام نوع بيانات عدد صحيح، يجب علينا وضع int قبل المعرف، مثل:
int age;
هنا، العمر هو متغير من نوع بيانات عدد صحيح والذي يمكن استخدامه لتخزين قيم عدد صحيح.
نوع بيانات النقطة العائمة
مثل الأعداد الصحيحة، في برنامج "C" يمكننا أيضًا الاستفادة من أنواع البيانات ذات الفاصلة العائمة. يتم استخدام الكلمة الأساسية "العائمة" لتمثيل نوع بيانات النقطة العائمة. يمكن أن تحتوي على قيمة النقطة العائمة مما يعني أن الرقم يحتوي على كسر وجزء عشري. قيمة النقطة العائمة هي رقم حقيقي يحتوي على علامة عشرية. لا يخزن نوع البيانات الصحيح الجزء العشري ومن ثم يمكننا استخدام العوامات لتخزين الجزء العشري من القيمة.
بشكل عام، يمكن أن يحتوي الرقم العائم على ما يصل إلى 6 قيم دقيقة. إذا لم يكن الرقم العائم كافيًا، فيمكننا الاستفادة من أنواع بيانات أخرى يمكنها الاحتفاظ بقيم فاصلة عائمة كبيرة. يتم استخدام نوع البيانات double وlong double لتخزين الأرقام الحقيقية بدقة تصل إلى 14 و80 بت على التوالي.
عند استخدام رقم فاصل عائم، يجب وضع كلمة رئيسية float/double/long double قبل المعرف. الأمثلة الصالحة هي:
float division; double BankBalance;
نوع بيانات الحرف
تُستخدم أنواع بيانات الأحرف لتخزين قيمة حرف واحدة محاطة بعلامات اقتباس مفردة.
يستهلك نوع بيانات الأحرف ما يصل إلى بايت واحد من مساحة الذاكرة.
سبيل المثال،
Char letter;
نوع بيانات فارغ
لا يحتوي نوع البيانات الفارغ على أي قيمة أو يُرجعها. يتم استخدامه في الغالب لتحديد الوظائف في "C".
سبيل المثال،
void displayData()
اكتب تعريف المتغير
int main() { int x, y; float salary = 13.48; char letter = 'K'; x = 25; y = 34; int z = x+y; printf("%d \n", z); printf("%f \n", salary); printf("%c \n", letter); return 0;}
الإخراج:
59 13.480000 K
يمكننا تعريف عدة متغيرات من نفس نوع البيانات في سطر واحد بفصلها بفاصلة. لاحظ أيضًا استخدام مُحدِّدات التنسيق في دالة الإخراج printf، مثل float (%f) و char (%c) و int (%d).
ثابت
الثوابت هي القيم الثابتة التي لا تتغير أبدًا أثناء تنفيذ البرنامج. فيما يلي الأنواع المختلفة من الثوابت:
ثوابت عدد صحيح
الثابت الصحيح ليس سوى قيمة تتكون من أرقام أو أعداد. هذه القيم لا تتغير أبدًا أثناء تنفيذ البرنامج. يمكن أن تكون الثوابت الصحيحة ثمانيًا وعشريًا وسداسي عشريًا.
الثابت العشري يحتوي على أرقام من 0 إلى 9 مثل،
Example, 111, 1234
أعلاه هي الثوابت العشرية الصالحة.
يحتوي الثابت الثماني على أرقام من 0 إلى 7، وهذه الأنواع من الثوابت يسبقها دائمًا 0.
Example, 012, 065
أعلاه هي الثوابت الثماني الصالحة.
يحتوي الثابت السداسي العشري على أرقام من 0 إلى 9 بالإضافة إلى أحرف من AF. الثوابت السداسية العشرية تكون مسبوقة دائمًا بـ 0X.
Example, 0X2, 0Xbcd
أعلاه هي الثوابت السداسية العشرية الصالحة.
نادرًا ما يتم استخدام الثوابت الصحيحة الثمانية والست عشرية في البرمجة باستخدام "C".
ثوابت الحروف
يحتوي الثابت الحرفي على حرف واحد فقط محصور بين علامتي اقتباس مفردتين ('). ويمكننا أيضًا تمثيل الثابت الحرفي من خلال توفير قيمته في نظام ASCII.
Example, 'A', '9'
فيما يلي أمثلة لثوابت الأحرف الصالحة.
ثوابت السلسلة
يحتوي الثابت النصي على سلسلة من الأحرف محاطة بعلامتي اقتباس مزدوجتين ("").
Example, "Hello", "Programming"
هذه هي أمثلة ثوابت السلسلة الصالحة.
الثوابت الحقيقية
مثل ثوابت الأعداد الصحيحة التي تحتوي دائمًا على قيمة عدد صحيح. يوفر 'C' أيضًا ثوابت حقيقية تحتوي على علامة عشرية أو قيمة كسر. تسمى الثوابت الحقيقية أيضًا باسم ثوابت الفاصلة العائمة. يحتوي الثابت الحقيقي على نقطة عشرية وقيمة كسرية.
Example, 202.15, 300.00
هذه هي الثوابت الحقيقية الصحيحة في 'C".
يمكن أيضًا كتابة الثابت الحقيقي على النحو التالي:
Mantissa e Exponent
على سبيل المثال، للإعلان عن قيمة لا تتغير مثل ثابت الدائرة الكلاسيكي PI، هناك طريقتان للإعلان عن هذا الثابت
باستخدام الكلمة المفتاحية const في تعريف المتغير، سيتم حجز مساحة تخزين في الذاكرة.
#include <stdio.h> int main() { const double PI = 3.14; printf("%f", PI); //PI++; // This will generate an error as constants cannot be changed return 0;}
باستخدام توجيه المعالج المسبق #define الذي لا يستخدم الذاكرة للتخزين ودون وضع فاصلة منقوطة في نهاية هذا البيان
#include <stdio.h> #define PI 3.14 int main() { printf("%f", PI); return 0;}
