تعريف مصفوفة
مجموعة عناصر من نفس النوع بحجم ثابت:
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).
🎯 التالي: المراجع والذاكرة الديناميكية.