Массивтің өлшемін қалай анықтауға болады

Мазмұны:

Массивтің өлшемін қалай анықтауға болады
Массивтің өлшемін қалай анықтауға болады

Бейне: Массивтің өлшемін қалай анықтауға болады

Бейне: Массивтің өлшемін қалай анықтауға болады
Бейне: Шью из мелких обрезков и кромок (НЕ пицца) DIY Мастер-класс 2024, Мамыр
Anonim

Массивтер - бұл бағдарлама жұмысы барысында мәліметтерді сақтаудың жиі қолданылатын формаларының бірі. Олар бір типті элементтерді реттелген ретпен ұйымдастыруға және оларға индекс бойынша жылдам қол жеткізуге мүмкіндік береді. Көбінесе, C ++ сияқты жадқа тікелей қол жеткізуге мүмкіндік беретін қуатты және икемді бағдарламалау тілдерінде қосымшалар жасау кезінде массивтің өлшемін анықтау қажет.

Массивтің өлшемін қалай анықтауға болады
Массивтің өлшемін қалай анықтауға болады

Қажетті

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

Нұсқаулық

1-қадам

Массивтің өлшемін компиляция кезінде сізeof операторының көмегімен есептеу арқылы анықтаңыз. Бұл оператор оған берілген аргумент алған жад көлемін (байтпен) қайтарады. Аргумент айнымалы немесе тип идентификаторы болуы мүмкін. 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]))): sizeeof операторының мәні компиляция кезінде есептелгендіктен уақыт, есептеу жүргізілетін жерде, массивтің көлемі және оның элементтері туралы ақпарат нақты қол жетімді болуы керек. Басқаша айтқанда, өлшемі белгісіз жиымның параметрлерін оның сыртқы декларациясы бойынша анықтау мүмкін емес.

4-қадам

Программаны орындау кезінде массивтің өлшемін оның аяқталуының белгілі белгісін пайдаланып анықтаңыз. Ұзындығы анықталмаған массив түрінде деректерді сақтауға және беруге мүмкіндік беретін тәсілдердің бірі - мәліметтер тізбегінің аяқталғанын көрсететін белгі үшін арнайы мән бөлу. Мысалы, символдар массиві болып табылатын бір байтты С стиліндегі жолдар 0 мәнімен аяқталуы керек, оралған айнымалы ұзындықтағы С жолдарының массивтері нөлдік, ал көрсеткіштер жиымдары нөлдік аяқталуы керек.

5-қадам

Осылайша ұсынылған массивтің өлшемін анықтау үшін оны аяқтайтын элементті тапқанға дейін элемент бойынша сканерлеңіз. Сканерлеу кезінде нөлдік инициализацияланған есептегішті көбейтіңіз. Немесе көрсеткіштің мәнін массив элементіне дейін көбейтіп, сканерлегеннен кейін ағымдық және бірінші элементтерге көрсеткіштердің арасындағы айырмашылықты есептеңіз.

6-қадам

Оның әдісін шақыру арқылы рамка немесе кітапхана нысаны ұсынатын динамикалық массивтің өлшемін алыңыз. Мұндай массивтердің функционалдығын жинайтын кез-келген кластарда элементтердің ағымдағы санын алу әдістері бар. Мысалы, C ++ стандартты кітапханасының std:: vector шаблон сыныбында өлшем әдісі, Qt жақтауының QVector сыныбында санау әдісі, ал MFC аналогтық CArray сыныбында GetCount әдісі бар.

Ұсынылған: