لغة 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. فهم هذه العناصر بشكل جيّد يُساعدك على كتابة برامج فعّالة وكفؤة.