شرح C++

المصفوفات (Arrays)

تعريف مصفوفة

مجموعة عناصر من نفس النوع بحجم ثابت:

int numbers[5] = {10, 20, 30, 40, 50};
string names[3] = {"علي", "سارة", "خالد"};

الوصول للعناصر

الفهرسة تبدأ من 0:

int numbers[5] = {10, 20, 30, 40, 50};

cout << numbers[0];   // 10
cout << numbers[4];   // 50
numbers[1] = 99;      // تعديل

⚠️ C++ لا يفحص حدود المصفوفة! الوصول لـ numbers[10] سلوك غير محدّد (قد ينهار أو يقرأ قيمًا عشوائية).

المرور بالحلقات

int scores[5] = {85, 90, 78, 92, 88};

// حلقة for تقليدية
for (int i = 0; i < 5; i++) {
    cout << scores[i] << " ";
}

// حلقة for-each (أنظف)
for (int score : scores) {
    cout << score << " ";
}

حساب المجموع

int nums[5] = {1, 2, 3, 4, 5};
int sum = 0;

for (int n : nums) {
    sum += n;
}
cout << "المجموع: " << sum;   // 15

مصفوفات متعدّدة الأبعاد

مصفوفة ثنائية (مثل جدول):

int matrix[2][3] = {
    {1, 2, 3},
    {4, 5, 6}
};

cout << matrix[0][2];   // 3
cout << matrix[1][0];   // 4

// المرور عليها
for (int i = 0; i < 2; i++) {
    for (int j = 0; j < 3; j++) {
        cout << matrix[i][j] << " ";
    }
}

أخطاء شائعة

  • الوصول لفهرس خارج الحدود (لا فحص في C++).
  • توقّع تغيير حجم المصفوفة — حجمها ثابت. للحجم المتغيّر استخدم vector (لاحقًا في STL).

🎯 التالي: المراجع والذاكرة الديناميكية.