Daugiau
Kaip C kalba nustatyti masyvo dydį?
Kaip C kalba nustatyti masyvo dydį?
T. y. kiek elementų gali talpinti masyvas?
894
3
Kaip C kalba nustatyti masyvo dydį?
T. y. kiek elementų gali talpinti masyvas?
Vykdomoji santrauka:
Pilnas atsakymas:
Norėdami nustatyti masyvo dydį baitais, galite naudoti
sizeof
operatorių:Mano kompiuteryje intų ilgis yra 4 baitai, taigi n yra 68.
Norėdami nustatyti masyvo elementų skaičių, galime padalyti bendrą masyvo dydį iš masyvo elemento dydžio. Tai galite padaryti su tipu, pvz:
ir gautumėte tinkamą atsakymą (68 / 4 = 17), bet jei tipas
a
pasikeistų, turėtumėte nemalonią klaidą, jei pamirštumėte pakeisti irsizeof(int)
.Taigi pageidaujamas daliklis yra
sizeof(a[0])
, t. y. nulinis masyvo elementas.Dar vienas privalumas yra tas, kad dabar galite lengvai parametrizuoti masyvo pavadinimą makrokomandoje ir gauti:
Verta paminėti, kad
sizeof
nepadeda, kai susiduriama su masyvo verte, kuri sumažėjo iki rodyklės: nors ji rodo į masyvo pradžią, kompiliatoriui tai yra tas pats, kas rodyklė į vieną to masyvo elementą. Rodyklė neprisimena "nieko daugiau apie masyvą, kuris buvo naudojamas jai inicializuoti.