آرایهها در C
تعریف آرایه، دسترسی به عناصر با اندیس و کاربردهای آرایه در C
آرایه چیست؟
آرایه برای ذخیره چند مقدار از یک نوع در یک متغیر استفاده میشود. بهجای تعریف ده متغیر جدا (number1 تا number10)، یک آرایه با ده خانه تعریف میکنیم.
تعریف آرایه
int numbers[4]; // آرایه ۴ عنصری از نوع int
برای مقداردهی، مقادیر را داخل آکولاد مینویسیم:
int numbers[4] = {25, 50, 75, 100};
اگر هنگام مقداردهی اندازه ننویسیم، کامپایلر خودش میشمارد:
int numbers[] = {25, 50, 75, 100}; // اندازه: 4
دسترسی به عناصر با اندیس
هر خانه آرایه یک اندیس (index) دارد. ⚠️ اندیسها از صفر شروع میشوند:
int numbers[4] = {25, 50, 75, 100};
printf("%d", numbers[0]); // 25 (عنصر اول)
printf("%d", numbers[1]); // 50
printf("%d", numbers[3]); // 100 (عنصر آخر)
| اندیس | 0 | 1 | 2 | 3 |
|---|---|---|---|---|
| مقدار | 25 | 50 | 75 | 100 |
تغییر مقدار عنصر
numbers[1] = 60; // حالا آرایه: {25, 60, 75, 100}
حلقه روی آرایه
با حلقه for میتوان همه عناصر را پیمایش کرد:
int numbers[4] = {25, 50, 75, 100};
for (int i = 0; i < 4; i++) {
printf("%d\n", numbers[i]);
}
تعیین اندازه آرایه
ترفند معروف: کل اندازه تقسیم بر اندازه یک عنصر:
int size = sizeof(numbers) / sizeof(numbers[0]); // 4
مقداردهی بخشی
int arr[5] = {10, 20}; // بقیه صفر میشوند: {10, 20, 0, 0, 0}
int zeros[5] = {0}; // همه صفر: {0, 0, 0, 0, 0}
خطای رایج: دسترسی خارج از محدوده
int numbers[4] = {25, 50, 75, 100};
printf("%d", numbers[4]); // ❌ خطا! اندیس معتبر: 0 تا 3
C جلوی این خطا را نمیگیرد و رفتار نامعین (undefined behavior) ایجاد میکند — مراقب باشید!
نکات مهم
- اندیس آرایه از ۰ شروع و تا
اندازه - 1ادامه مییابد - اندازه آرایه بعد از تعریف تغییر نمیکند (آرایه پویا با malloc ممکن است)
- همه عناصر آرایه از یک نوع هستند
این مبحث بخشی از دوره آموزش کامل زبان C است.