Как да определя размера на масива в езика C?
Как да определя размера на масива в езика C?
Тоест броят на елементите, които масивът може да побере?
894
3
Как да определя размера на масива в езика C?
Тоест броят на елементите, които масивът може да побере?
Изпълнително резюме:
Пълният отговор:
За да определите размера на масива си в байтове, можете да използвате
sizeof
оператора:На моя компютър интовете са с дължина 4 байта, така че n е 68.
За да определим броя на елементите в масива, можем да разделим общия размер на масива на размера на елемента на масива. Можете да направите това с типа, както следва:
и да получите правилния отговор (68 / 4 = 17), но ако типът на
a
се промени, ще се получи неприятна грешка, ако забравите да промените и размера наsizeof(int)
.Така че предпочитаният делител е
sizeof(a[0])
, размерът на нулевия елемент на масива.Друго предимство е, че сега можете лесно да параметризирате името на масива в макрос и да получите:
Струва си да се отбележи, че
sizeof
не помага при работа със стойност на масив, която се е разпаднала до указател: въпреки че посочва началото на масив, за компилатора тя е същата като указател на единичен елемент от този масив. Указателят не "помни" нищо друго за масива, който е бил използван за инициализирането му.