|
1 پاسخ
در سی++ آرایه ها اندازه خودشان را ذخیره نمیکنند
- دلیل 1: به دلیل اینکه سی++ تاکید بسیار زیادی روی سرعت اجرای برنامه دارد، اندازه آرایه را ذخیره نمیکند، زیرا اگر اندازه را ذخیره میکرد به ازای هر بار دسترسی به عناصر آرایه میبایست چک میکرد که "آیا این اندیس در بازه ی تعریف شده قرار دارد یا نه" هر چند این کار با (1)O قابل انجام است ولی سی++ از این هزینه ی اندک هم بیم دارد.
- دلیل 2: سی++ برنامه نویسی سطح پایینی است، به همین دلیل برنامه نویس سی++ "به صورت پیش فرض" باید بلد باشد که طول آرایه (در صورت لزوم) به دست آورد.
حال جواب:
میدانیم در تعریف آرایه ها ، وقتی که آرایه تعریف میشود کل حافظه ی مورد نیاز آرایه از Ram گرفته میشود. در نتیجه با کمی دقت با استفاده از حافظه ی گرفته شده این کار قابل انجام است.
int a[]={2,4,3,2,5,1,0,2,3};
int Size= sizeof a / sizeof a[0];
cout<<Size;