Массивдин көлөмүн кантип аныктоого болот

Мазмуну:

Массивдин көлөмүн кантип аныктоого болот
Массивдин көлөмүн кантип аныктоого болот

Video: Массивдин көлөмүн кантип аныктоого болот

Video: Массивдин көлөмүн кантип аныктоого болот
Video: Get The Facts, with a little help from Google 2024, Ноябрь
Anonim

Массивдер программанын иштешинде маалыматтарды сактоонун көп колдонулган формаларынын бири болуп саналат. Алар бир типтеги элементтерди иреттелген ырааттуулукта уюштурууга жана индекс боюнча аларга тез жетүүгө мүмкүндүк берет. Көбүнчө, C ++ сыяктуу түздөн-түз эс тутумга мүмкүнчүлүк берген күчтүү жана ийкемдүү программалоо тилдериндеги тиркемелерди иштеп чыгууда, массивдин көлөмүн аныктоо керек.

Массивдин көлөмүн кантип аныктоого болот
Массивдин көлөмүн кантип аныктоого болот

Зарыл

C ++ компилятору

Нускамалар

1 кадам

Массивдин өлчөмүн компиляциялоо учурунда, аны sizeof операторунун жардамы менен эсептөө менен аныктаңыз. Бул оператор ага берилген аргумент ээлеген эс тутумдун көлөмүн (байт менен) кайтарып берет. Аргумент өзгөрүлмө же тип аныктагыч болушу мүмкүн. Sizeof оператору программаны аткаруу стадиясында объект ээлеген эс тутумдун чектүү көлөмүн кайтарат (мисалы, структура талааларын тегиздөө орнотууларын эске алуу менен), бирок аны эсептөө компиляция этабында жүргүзүлөт.

2-кадам

Sizeof операторунун жардамы менен массивдин көлөмүн аныктоо үчүн анын бүт өлчөмүн бир элементтин өлчөмүнө бөлүңүз. Мисалы, сизде массивдин төмөнкү аныктамасы бар: int aTemp = {10, 20, 0xFFFF, -1, 16}, анда анын өлчөмүн төмөнкүдөй эсептөөгө болот: int nSize = sizeof (aTemp) / sizeof (aTemp) [0]);

3-кадам

Бул методду ыңгайлуураак колдонуу үчүн, макросту аныктоонун мааниси бар: #define countof (a) (sizeof (a) / sizeof (a [0]))) Эскерте кетсек, sizeof операторунун мааниси компиляцияда эсептелген убакыт, эсептөө жүргүзүлүп жаткан учурда, массивдин көлөмү жана анын элементтери жөнүндө маалымат ачык болушу керек. Башка сөз менен айтканда, белгисиз өлчөмдөгү массивдин параметрлерин анын тышкы декларациясы менен аныктоо мүмкүн эмес.

4-кадам

Программаны аткарууда массивдин көлөмүн, анын токтотулушунун белгилүү белгисин колдонуп аныктаңыз. Берилиштерди белгисиз узундуктагы массив түрүндө сактоого жана берүүгө мүмкүнчүлүк берген ыкмалардын бири - бул маалыматтар ырааттуулугун бүткөргөн белгиге атайын маани берүү. Мисалы, символдор массиви болгон бир байттык С стилиндеги саптар 0 мааниси менен аякташы керек, оролгон узундуктагы С тилкесинин массивдери нөл менен, ал эми көрсөткүчтөр массивдери нөл менен бүтүшү керек.

5-кадам

Ушул жол менен көрсөтүлгөн массивдин көлөмүн аныктоо үчүн, аны аяктоочу элементти тапканга чейин элемент боюнча сканерлеңиз. Скандоо учурунда нөл башталган эсептегичти көбөйтүңүз. Же болбосо, көрсөткүчтү массив элементине чейин көбөйтүп, сканерлөөдөн кийин учурдагы жана биринчи элементтерге көрсөткүчтөрдүн ортосундагы айырманы эсептеңиз.

6-кадам

Формама же китепкана объектиси сунуш кылган динамикалык массивдин көлөмүн анын ыкмасын чакыруу менен алыңыз. Мындай массивдердин функционалдык мүмкүнчүлүктөрүн камтыган ар кандай класстарда учурдагы элементтердин санын алуу ыкмалары бар. Мисалы, C ++ стандарттык китепканасынын std:: vector шаблондору классында өлчөм методу, Qt алкагындагы QVector классында саноо ыкмасы, ал эми MFC аналогдук CArray классында GetCount методу бар.

Сунушталууда: