لغة C تتكون من مجموعة من العناصر الأساسية التي تُستخدم لبناء البرامج. إليك أهم هذه العناصر مع شرح مُفصّل:
1. أنواع البيانات (Data Types): تُحدد أنواع البيانات نوع القيم التي يُمكن للمُتغيّرات تخزينها وكيفية التعامل معها.
- أنواع البيانات الأساسية (Basic Data Types):
int
: للأعداد الصحيحة (مثل: 10, -5, 0).float
: للأعداد العشرية ذات الدقة المفردة (مثل: 3.14, -2.5).double
: للأعداد العشرية ذات الدقة المُزدوجة (أكثر دقة منfloat
).char
: للأحرف (مثل: 'A', 'b', '$').void
: يُستخدم للدلالة على عدم وجود نوع، ويُستخدم عادةً مع الدوال التي لا تُرجع قيمة.
- مُعدِّلات أنواع البيانات (Data Type Modifiers): تُستخدم لتعديل حجم أو نطاق أنواع البيانات الأساسية.
short
: يُقلل حجمint
.long
: يزيد حجمint
أوdouble
.unsigned
: للأعداد الصحيحة الموجبة فقط.signed
: للأعداد الصحيحة الموجبة والسالبة (الافتراضي).
- أنواع البيانات المُشتقة (Derived Data Types):
- المُؤشّرات (Pointers): مُتغيّرات تُخزّن عناوين الذاكرة.
- المصفوفات (Arrays): مجموعة من العناصر من نفس النوع مُخزّنة في مواقع ذاكرة مُتجاورة.
- الهياكل (Structures): مجموعة من المُتغيّرات من أنواع مُختلفة مُجمّعة تحت اسم واحد.
- الاتحادات (Unions): تُشبه الهياكل، ولكن جميع عناصر الاتحاد تشترك في نفس موقع الذاكرة.
- التعدادات (Enumerations): تُعرّف مجموعة من الثوابت المُسمّاة.
2. المُتغيّرات (Variables): أماكن مُسمّاة في الذاكرة تُستخدم لتخزين البيانات. يجب تعريف المُتغيّرات قبل استخدامها بتحديد نوعها واسمها.
3. الثوابت (Constants): قيم ثابتة لا يُمكن تغييرها أثناء تنفيذ البرنامج. يُمكن تعريفها باستخدام الكلمة المفتاحية const
أو باستخدام المُعرّف #define
.
4. المُعاملات (Operators): رموز تُستخدم لإجراء العمليات على البيانات.
- المُعاملات الحسابية (Arithmetic Operators):
+
(جمع)،-
(طرح)،*
(ضرب)،/
(قسمة)،%
(باقي القسمة). - مُعاملات الإسناد (Assignment Operators):
=
(إسناد)،+=
،-=
،*=
،/=
. - مُعاملات المُقارنة (Comparison Operators):
==
(يساوي)،!=
(لا يساوي)،>
(أكبر من)،<
(أصغر من)،>=
(أكبر من أو يساوي)،<=
(أصغر من أو يساوي). - المُعاملات المنطقية (Logical Operators):
&&
(و)،||
(أو)،!
(نفي). - مُعاملات البت (Bitwise Operators):
&
(و منطقي على مستوى البت)،|
(أو منطقي على مستوى البت)،^
(أو حصري على مستوى البت)،~
(نفي على مستوى البت)،<<
(إزاحة لليسار)،>>
(إزاحة لليمين). - مُعاملات الزيادة والنقصان (Increment and Decrement Operators):
++
(زيادة بمقدار 1)،--
(نقصان بمقدار 1). - المُعامل الشرطي (Conditional Operator):
?:
(يُستخدم لكتابة تعبير شرطي مُختصر). - مُعامل حجم الذاكرة (sizeof Operator): يُرجع حجم مُتغيّر أو نوع بيانات بالبايت.
5. التعابير (Expressions): تتكون من مُزيج من المُتغيّرات والثوابت والمُعاملات.
6. الجُمل (Statements): تعليمات تُنفّذها الحاسوب.
- جُمل الإسناد (Assignment Statements): تُستخدم لإسناد قيمة لمُتغيّر.
- جُمل التحكم في التدفق (Control Flow Statements):
- جُمل
if
وelse
: لتنفيذ كود مُعيّن بناءً على شرط. - جُمل
switch
: لتحديد حالة واحدة من بين عدّة حالات مُمكنة. - حلقات التكرار (Loops):
for
: لتكرار كود مُعيّن عدد مُحدّد من المرات.while
: لتكرار كود مُعيّن طالما تحقق شرط مُعيّن.do...while
: تُشبهwhile
، ولكن الكود يُنفّذ مرة واحدة على الأقل قبل التحقق من الشرط.
- جُمل
- جُمل القفز (Jump Statements):
break
: للخروج من حلقة تكرار أو من جملةswitch
.continue
: للانتقال إلى التكرار التالي في حلقة تكرار.goto
: للانتقال إلى نقطة مُحدّدة في الكود (يُفضّل تجنّب استخدامها قدر الإمكان).return
: للخروج من دالة وإرجاع قيمة (إذا كانت الدالة تُرجع قيمة).
7. الدوال (Functions): كتل من الكود تُنفّذ مهمة مُحدّدة. يُمكن استدعاء الدوال من أي مكان في البرنامج.
8. المُعالِجات المُسبقة (Preprocessor Directives): تعليمات تُعطى للمُعالِج المُسبق قبل ترجمة الكود. تبدأ بالرمز #
.
#include
: لإدراج ملفات رأسية.#define
: لتعريف ثوابت أو ماكرو.#ifdef
،#ifndef
،#else
،#endif
: لتنفيذ كود مُعيّن بناءً على شروط تُحدّدها المُعالِجات المُسبقة.
9. التعليقات (Comments): تُستخدم لشرح الكود وتوضيحه. يتجاهلها المُترجم.
//
: لتعليق سطر واحد./* ... */
: لتعليق عدّة أسطر.
هذه هي العناصر الأساسية للغة C. فهم هذه العناصر بشكل جيّد يُساعدك على كتابة برامج فعّالة وكفؤة.