Pointer va massiv
Koʻrsatkich xotira joyiga havolani saqlaydigan maʼlumotlar turidir (yaʼni, koʻrsatgich oʻzgaruvchisi baʼzi maʼlumotlar saqlanadigan xotira joylashuvi manzilini saqlaydi). Massivlar elementlar to'plamini saqlash uchun eng ko'p qo'llaniladigan ma'lumotlar strukturasidir. Ko'pgina dasturlash tillari massivlarni osongina e'lon qilish va massivlardagi elementlarga kirish usullarini taqdim etadi.
Ko'rsatkich nima?
Koʻrsatkich baʼzi maʼlumotlar saqlanadigan xotira joylashuvi manzilini saqlaydigan maʼlumotlar turidir. Boshqacha qilib aytganda, ko'rsatgich xotira joyiga havolani ushlab turadi. Ko'rsatgich tomonidan havola qilingan xotira joyida saqlangan ma'lumotlarga kirish referensiya deb ataladi. Daraxtlarni/satrlarni kesib o'tish, jadvallarni qidirish va hokazo kabi takrorlanuvchi operatsiyalarni bajarishda ko'rsatgichlardan foydalanish ish faoliyatini yaxshilaydi. Buning sababi shundaki, ko'rsatkichlarni o'chirish va nusxalash ko'rsatkichlar tomonidan ko'rsatilgan ma'lumotlarni nusxalash va ularga kirishdan ko'ra arzonroqdir. Null ko'rsatkich hech narsaga ishora qilmaydigan ko'rsatgichdir. Java'da null ko'rsatkichga kirish NullPointerException deb nomlangan istisno hosil qiladi.
Masiv nima?
1-rasmda ko'rsatilgan, odatda massivga qiymatlarni e'lon qilish va belgilash uchun ishlatiladigan kod qismidir. 2-rasmda massiv xotirada qanday ko‘rinishi tasvirlangan.
int qiymatlari[5]; qiymatlar[0]=100; qiymatlar[1]=101; qiymatlar[2]=102; qiymatlar[3]=103; qiymatlar[4]=104; |
1-rasm: massivga qiymatlarni e'lon qilish va belgilash kodi
100 | 101 | 102 | 103 | 104 |
Indeks: 0 | 1 | 2 | 3 | 4 |
2-rasm: Xotirada saqlangan massiv
Yuqoridagi kod 5 ta butun sonni saqlashi mumkin boʻlgan massivni belgilaydi va ularga 0 dan 4 gacha indekslar yordamida kirish mumkin. Massivning muhim xususiyati shundaki, butun massiv bitta xotira bloki sifatida ajratiladi va har bir element oʻz qiymatini oladi. massivda o'z maydoni. Massiv aniqlangandan so'ng uning o'lchami o'rnatiladi. Shunday qilib, kompilyatsiya vaqtida massivning o'lchamiga ishonchingiz komil bo'lmasa, xavfsiz tomonda bo'lish uchun etarlicha katta massivni belgilashingiz kerak bo'ladi. Ammo, ko'pincha, biz ajratganimizdan kamroq elementlardan foydalanamiz. Shunday qilib, xotiraning katta miqdori aslida behuda ketadi. Boshqa tomondan, agar “etarlicha katta massiv” yetarlicha katta boʻlmasa, dastur ishdan chiqadi.
Ko'rsatkichlar va massivlar o'rtasidagi farq nima?
Ko'rsatkich ba'zi ma'lumotlar saqlanadigan xotira joylashuvi manzilini saqlaydigan ma'lumotlar turi, Massivlar esa elementlar to'plamini saqlash uchun eng ko'p ishlatiladigan ma'lumotlar strukturasidir. C dasturlash tilida massivlarni indekslash ko'rsatkich arifmetikasi yordamida amalga oshiriladi (ya'ni x massivning i elementi (x+i) ga ekvivalent bo'ladi). Shuning uchun C tilida ketma-ket joylashgan xotira joylari to'plamiga ishora qiluvchi ko'rsatkichlar to'plamini massiv deb hisoblash mumkin. Bundan tashqari, sizeof operatori ko'rsatkichlar va massivlarda qanday ishlashida farq bor. Massivga qo‘llanilganda sizeof operatori massivning butun o‘lchamini qaytaradi, ko‘rsatkichga qo‘llanilganda esa faqat ko‘rsatkich hajmini qaytaradi.