Massiv Hajmini Qanday Aniqlash Mumkin

Mundarija:

Massiv Hajmini Qanday Aniqlash Mumkin
Massiv Hajmini Qanday Aniqlash Mumkin

Video: Massiv Hajmini Qanday Aniqlash Mumkin

Video: Massiv Hajmini Qanday Aniqlash Mumkin
Video: Uy sharoyitida barmoq o'lchamini aniqlash 2024, Dekabr
Anonim

Massivlar dasturni ishlash jarayonida ma'lumotlarni saqlashning eng ko'p ishlatiladigan shakllaridan biridir. Ular bir xil turdagi elementlarni buyurtma qilingan ketma-ketlikda tartibga solish va ularga indeks bo'yicha tezkor kirish imkoniyatini beradi. Ko'pincha, C ++ kabi xotiraga to'g'ridan-to'g'ri kirish imkoniyatini beradigan kuchli va moslashuvchan dasturlash tillarida dasturlarni ishlab chiqishda siz massivning hajmini aniqlashingiz kerak.

Massiv hajmini qanday aniqlash mumkin
Massiv hajmini qanday aniqlash mumkin

Kerakli

C ++ kompilyatori

Ko'rsatmalar

1-qadam

Sizeof operatori yordamida hisoblash orqali massivni kompilyatsiya vaqtida aniqlang. Ushbu operator unga berilgan argument egallagan xotira hajmini (baytda) qaytaradi. Argument ham o'zgaruvchi, ham tur identifikatori bo'lishi mumkin. Sizeof operatori dasturni bajarish bosqichida (masalan, struktura maydonlarini tekislash sozlamalarini hisobga olgan holda) ob'ekt egallagan cheklangan xotirani qaytaradi, ammo uni hisoblash kompilyatsiya bosqichida amalga oshiriladi.

2-qadam

Sizeof operatori yordamida massivning hajmini aniqlash uchun uning butun hajmini bitta element o'lchamiga bo'ling. Masalan, agar sizda massivning quyidagi ta'rifi bo'lsa: int aTemp = {10, 20, 0xFFFF, -1, 16}, unda uning o'lchamini quyidagicha hisoblash mumkin: int nSize = sizeof (aTemp) / sizeof (aTemp [0]);

3-qadam

Ushbu usuldan yanada qulay foydalanish uchun so'lni belgilash maqsadga muvofiq: #define countof (a) (sizeof (a) / sizeof (a [0]))) Esda tutingki, sizeof operatorining qiymati kompilyatsiya paytida hisoblanadi vaqt, hisoblash amalga oshiriladigan nuqtada, massiv hajmi va uning elementlari haqida ma'lumot aniq bo'lishi kerak. Boshqacha qilib aytganda, noma'lum kattalikdagi massivning parametrlarini uning tashqi deklaratsiyasi bilan aniqlash mumkin emas.

4-qadam

Dasturni bajarish paytida massivning hajmini uning tugashining ma'lum belgisidan foydalanib aniqlang. Ma'lumotlarni noma'lum uzunlikdagi massivlar ko'rinishida saqlash va uzatish imkonini beradigan yondashuvlardan biri bu ma'lumotlar ketma-ketligi tugaganligini ko'rsatuvchi belgi uchun maxsus qiymat ajratishdir. Masalan, belgi massivi bo'lgan bitta baytli C uslubidagi satrlar 0 qiymati bilan tugashi kerak, qadoqlangan o'zgaruvchan uzunlikdagi C qatorlari massivlari nol bilan tugaydi va ko'rsatgichlar qatorlari null bilan tugaydi.

5-qadam

Shu tarzda ko'rsatilgan massivning hajmini aniqlash uchun tugatish elementini topguningizcha uni elementlar bo'yicha skanerlang. Tekshirish paytida nol boshlangan hisoblagichni oshiring. Yoki ko'rsatgich qiymatini massiv elementiga oshiring va skanerdan so'ng joriy va birinchi elementlarga ko'rsatgichlar orasidagi farqni hisoblang.

6-qadam

Uning uslubini chaqirib, ramka yoki kutubxona ob'ekti tomonidan ifodalangan dinamik massivning hajmini oling. Bunday massivlarning funksionalligini o'z ichiga olgan har qanday sinflarda elementlarning joriy sonini olish usullari mavjud. Masalan, C ++ standart kutubxonasining std:: vector shablon sinfida o'lchov usuli, Qt ramkasining QVector sinfida hisoblash usuli va MFC ning o'xshash CArray sinfida GetCount usuli mavjud.

Tavsiya: