اندازه آرایه (Array Size)
این جا درباره اندازه آرایه حرف می زنیم. «اندازه آرایه» یعنی مقدار حافظه یا تعداد عنصرها. عملگر sizeof اندازه را بر حسب بایت (Byte) می دهد.
گرفتن اندازه آرایه با sizeof
sizeof تعداد بایت های آرایه را می دهد. هر int معمولاً چهار بایت است.
int myNumbers[] = { 10, 25, 50, 75, 100 };
printf("%zu", sizeof(myNumbers));
نکته: اگر پنج int دارید و هرکدام چهار بایت است، خروجی 20 می شود.
تعداد عنصرهای آرایه
برای تعداد عنصرها، اندازه کل را بر اندازه یک عنصر تقسیم کن.
int myNumbers[] = { 10, 25, 50, 75, 100 };
int length = sizeof(myNumbers) / sizeof(myNumbers[0]);
printf("%d", length);
این فرمول برای هر نوعی کار می کند
نوع double هم همین است. فقط اندازه عنصر عوض می شود.
double myValues[] = { 1.1, 2.2, 3.3 };
int length = sizeof(myValues) / sizeof(myValues[0]);
printf("%d", length);
تمرین سه مرحله ای
- یک آرایه بساز. چند مقدار عددی بگذار.
- خروجی sizeof آرایه را چاپ کن.
- فرمول طول را چاپ کن و مقایسه کن.
برای مرور آرایه ها، صفحه آرایه در C را ببین. همچنین برای کار با حلقه ها، از اندازه آرایه در حلقه ها استفاده کن.
جمع بندی سریع
- sizeof اندازه بایت ها را می دهد.
- تعداد عنصر = کل بایت ÷ بایتِ هر عنصر.
- فرمول برای همه نوع ها معتبر است.
- نتیجه sizeof روی آرایه، تعداد عنصر نیست.