Massivlar va ko'rsatkichlar (Massiv)
Last updated
Last updated
MASSIV so'zi dasturlash tillariga ham bog'liq. C# dasturlash tilida kompyuter xotirasiga bir o’zgaruvchi yordamida bir nechta qiymatlarda foydalanishga to’g’ri keladi. Bir o’zgaruvchi bilan bir nechta qiymat ustida amallar bajarish uchun berilgan ma’lumotlar bir turga mansub bo’lishi kerak. C# dasturlash tilida bir o’zgaruvchi yordamida bir nechta qiymatlardan foydalanish uchun massiv degan turdan foydalaniladi. Dasturlash tillarida ro’yxat yoki jadval ko’rinishidagi ma’lumotlarni massiv deb atashadi. Massiv so’zining ma’nosi o’lcham, o’lchov demakdir. Massivning barcha elementlari bitta turga mansub bo’lib, ular bitta nom bilan nomlanadi va bir-birlaridan nomerlari (indekslari) bilan farq qiladi.
Bir o'lchovli massiv
Bir o'lchovli massiv (array) — bu bir xil turdagi elementlarning ketma-ket saqlanadigan to'plami. C dasturlash tilida massivlar bir xil turdagi o'zgaruvchilarning to'plamini xotirada ketma-ket joylashgan holatda saqlaydi. Har bir element indeks orqali murojaat qilinadi, bu esa massivni boshqarishni osonlashtiradi.
data_type — massivdagi elementlarning turi (masalan, int
, float
, char
).
array_name — massiv nomi.
size — massivdagi elementlar soni.
Misol: Bir o'lchovli massiv yaratish
Tushuntirish:
int sonlar[5]
— 5 ta butun sonni saqlaydigan massiv e'lon qilindi. Elementlar indeks orqali (sonlar[i]
) murojaat qilinadi.
C dasturlash tilida massiv nomi aslida ko'rsatkich sifatida ishlaydi. Massiv nomi uning birinchi elementining xotira manzilini bildiradi. Masalan, sonlar
massivining nomi, birinchi element (sonlar[0]
) joylashgan xotira manziliga ishora qiladi.
Massiv elementlariga murojaat:
C dasturlash tilida massiv elementlariga indeks orqali murojaat qilinadi:
sonlar[0]
— birinchi element.
sonlar[4]
— beshinchi element (indeks 0 dan boshlanadi).
Ko'p o'lchovli massivlar — bu ikki yoki undan ortiq o'lchovli massivlar bo'lib, odatda ular jadval yoki matritsa kabi tasvirlanadi. Eng ko'p ishlatiladigani 2 o'lchovli massivlar bo'lib, ular qatorlar va ustunlar shaklida ko'rinadi.
rows — satrlar soni.
columns — ustunlar soni.
Misol: Ikki o'lchovli massiv yaratish
Tushuntirish:
int matritsa[2][3]
— bu yerda 2 qator va 3 ustundan iborat ikki o‘lchovli massiv yaratildi.
matritsa[i][j]
— har bir elementga qator va ustun indekslari orqali murojaat qilinadi.
Ko'rsatkich (pointer) — bu o'zgaruvchilarning xotira manzilini saqlaydigan o'zgaruvchi. Ya'ni, pointer yordamida xotiradagi manzilga to'g'ridan-to'g'ri murojaat qilib, ma'lumotni o'qish yoki o'zgartirish mumkin.
Ko'rsatkichlar C dasturlash tilida juda qulay va kuchli vositadir. Ular xotira manzillarini saqlash va boshqarish imkonini beradi.
Ko'rsatkich e'lon qilish uchun ma'lumot turi oldiga *
belgisini qo'yamiz:
data_type — ko'rsatkich qaysi turdagi ma'lumotga ishora qilayotganini bildiradi.
pointer_name — pointerning nomi.
Misol: Ko'rsatkich yaratish va ishlatish
Tushuntirish:
int *ptr
— bu yerda ptr
nomli ko'rsatkich butun sonning xotira manzilini saqlaydi.
&son
— son
o'zgaruvchisining xotira manzilini bildiradi va ptr
pointeriga yuklanadi.
*ptr
— bu pointer orqali qiymatni o'qish (dereferentsiya).
Ko'rsatkich orqali qiymatni o'zgartirish
Ko'rsatkich yordamida o'zgaruvchining qiymatini o'zgartirish mumkin:
Tushuntirish:
*ptr = 25
— bu yerda pointer orqali son
o'zgaruvchisining qiymati o'zgartirildi.
Massiv nomi ko'rsatkichga juda o'xshaydi, chunki u massivning birinchi elementining xotira manzilini bildiradi. Bu shuni anglatadiki, massiv nomi ko'rsatkich sifatida ishlatilishi mumkin. C dasturlash tilida massiv nomi aslida massivning birinchi elementining ko'rsatkichidir.
Massiv va pointer o'rtasidagi bog'liqlik:
Yuqorida sonlar
nomli massiv o'z-o'zidan ko'rsatkich sifatida ishlatilmoqda. ptr = sonlar
orqali massivning birinchi elementining xotira manzili pointerga yuklanadi.
Misol: Massiv va pointer bilan ishlash
Tushuntirish:
int *ptr = sonlar
— bu yerda ptr
massivning birinchi elementining xotira manzilini saqlaydi.
*(ptr + i)
— pointer orqali massivning i-elementiga murojaat qilinmoqda.
Ko'rsatkich bilan massiv elementlarini o'zgartirish:
Massiv elementlarini pointer yordamida o'zgartirish ham mumkin:
Tushuntirish:
*(ptr + 2) = 100
— pointer orqali massivning 3-elementining qiymati o'zgartirilmoqda.
GCC — bu C va boshqa tillar uchun kompilyator bo'lib, u kodni kompilyatsiya qilish va ishga tushirish uchun ishlatiladi. GCC yordamida massivlar va ko'rsatkichlar bilan ishlaydigan dasturlarni tekshirish uchun quyidagi qadamlar bajariladi.
Misol uchun, yuqoridagi massivlar va pointerlar bilan ishlovchi kodni faylga saqlaymiz:
Kompilyatsiya qilish uchun quyidagi buyruqni terminalga kiritamiz:
Bu buyruq pointer_array
nomli bajariladigan fayl yaratadi.
Kompilyatsiyalangan dasturni ishga tushirish uchun quyidagi buyruqni kiriting:
Bu buyruq dasturni ishga tushiradi va natijalar ekranga chiqariladi.