logo

Dinamik xotiradan foydalanish, dinamik xotirani ishlatishda ko’rsatkich turlari

Yuklangan vaqt:

08.08.2023

Ko'chirishlar soni:

0

Hajmi:

2194.431640625 KB
Dinamik xotiradan foydalanish, dinamik xotirani ishlatishda ko’rsatkich turlari
Reja:
1. O’zgaruvchining adresi nima?  Ko’rsatgich nima?
2. Dinamik xotiradan foydalanish
3. Dinamik xotirani ishlatishda qo llaniladigan asosiy protseduralar‟ Operativ xotira yachekalar (baytlar) ning ketma-ketligi sifatida tashkil etilgan.
    Har bir yacheka o'z adresiga (tartib raqamiga) ega. 
  Adres - butun son bo'lib, ko'pincha o'n oltilik tizimda yoziladi. Ko’rsatgich – bu xotiraning qandaydir yacheykasi manzilini saqlovchi o zgaruvchi.‟
 • Koэrsatgichlar tiplashgan hisoblanadi: int i = 3; // int tipidagi o zgaruvchi int * p = 	
‟
0; // int tipidagi o zgaruvchiga ko rsatgich 	
‟ ‟
• Null koэrsatgichga (0 qiymat ta minlangan) xotiraning hech qanday yacheykasiga 	
‟
mos keladi. 
• Koэrsatgichlar bilan ishlashda 2 ta operator mavjud: 1) o zgaruvchining manzilini 	
‟
olish operatori - & 2) manzildagi qiymatga murojaat - *. 
• p = &i; // i oэzgaruvchiga p ko rsatgich (bu xolatda p ko rsatgichga i 	
‟ ‟
o zgaruvchining manzili yoziladi) 	
‟
• *p = 10; // p manzil bo yicha yacheyka o zgaradi, ya ni i o zgaruvchining qiymati 	
‟ ‟ ‟ ‟
o zgaradi (i ning qiymati 3 emas, 10 bo ladi)	
‟ ‟   Funksiyaga ko rsatkich funksiyaning bajariluvchi kodi saqlanadigan kod segmentida ‟
adresni (manzilni) saqlaydi. Funksiyaga ko rsatkich funksiyani bilvosita chaqirish 	
‟
(uning nomi orqali emas, balki uning manzilini saqlovchi o zgaruvchiga murojaat 	
‟
etish orqali) hamda funksiya nomini boshqa funksiya parametr sifatida berish uchun 
foydalaniladi. Funksiyaga ko rsatkich berilgan tipdagi qiymati qaytaruvchi va 	
‟
berilgan tipli argumentlariga ega “funksiyaga ko rsatkich” tipiga ega:	
‟
 tip (*nom) ( argument tipi ro'yxati ) 
Masalan, e'lon: int (*fun) (double, double); fun nomli int tipidagi qiymat qaytaruvchi 
va ikkita double tipidagi argumentga ega funksiyaga ko'rsatgich hisoblanadi.
OBYEKTGA KO RSATGICH Obyektga ko'rsatgich ma lum tipdagi (asosiy yoki 	
‟ ‟
murakkab) ma'lumotlar saqlanadigan xotira sohasi manzilini saqlaydi. Obyektga 
ko'rsatgichni e lon qilinishi quyidagicha:	
‟
 tip *nom;
void  ga ko'rsatgich adresi saqlanish talab qilingan obyektning konkret tipi 
aniqlanmagan hollarda qo'llaniladi (masalan, agar bitta o'zgaruvchida turli vaqt 
momentlarida turli tipdagi obyektlar adreslarini saqlash talab etilsa).  void  ga 
ko'rsatgichda quyidagilarni bajarish mumkin:
 • ixtiyoriy tipdagi ko'rsatgich qiymatini berish,
 • uni ixtiyoriy ko'rsatgichlar bilan taqqoslash; 
• murojaat etiluvchi xotira sohasi bilan qandaydir amallarni bajarish oldidan uni 
oshkora ko'rinishda konkret tipga almashtirish talab etiladi.
Uyum  (kucha, heap) deb nomlanuvchi dinamik xotira bilan ishlashda Uyum - dasturni
bajarish jarayonida dastur ehtiyojlaridan kelib chiqib, ajratilishi mumkin bo lgan 	
‟
bo sh xotira. 	
‟
• Dinamik xotiradan ajratilgan sohada murojaat qilish faqat ko rsatgichlar orqali 	
‟
amalga oshiriladi.
 • Dinamik o zgaruvchining yashash davri – yaratilishidan to dastur ishini 	
‟
yakunlanguncha yoki xotirani oshkor bo shatish amalga oshirilguncha bo lgan davr 	
‟ ‟
hisoblanadi.
• Ko rsatgichdan foydalanishdan oldin, uni inistializatsiyalash ya ni qiymat 	
‟ ‟
ta minlash kerak.	
‟  • Inistializatsiyalanmagan ko rsatgichlardan foydalanish – dasturdagi xatolik manbai ‟
bo lishi mumkin.	
‟
 • Initsializator ko'rsatgich nomidan so'ng oddiy qavslarda yoki tenglik belgisidan 
keyin yoziladi
Ko'rsatgichni initsializatsiyalashni quyidagi usullari mavjud:
 • Ko'rsatgichi mavjud obyektning adresini berish;
 • Ko'rsatgichga xotira sohasi adresini oshkora berish;
 • Bo'sh qiymatni berish;
 • Dinamik xotira maydonini ajratish va uning adresini ko'rsatgichga berish.   Ko’rsatgichlar ustida amallar
 Ko’rsatgichlar bilan quyidagi amallar bajariladi: 
1) obyektga vositali murojaat (*), 
2) ta’minlash, 
3) tipga keltirish, 
4) konstanta bilan qo’shish
5) ayirish, 
6) inkrement (++), 
7) dekrement (--),
 8) taqqoslash Ko’rsatgichlarni tiplarga keltirish  1- misol.  Sonning natural bo‘luvchilar sonini aniqlash uchun bo’luvchi(x) 
funksiyasini yarating.
2-masala  .  1 dan 20 gacha sonlar yozilgan f  fayli elementlari orasidan juftlarini 
ikkiga ko‘paytirib g faylga yozing.Masalani yechish uchun f faylni tt.txt,  g  faylni 
esa th.txt faylga bog’laymiz.
3-misol. Berilgan satrni ekranga chiqaring. 4-misol . Berilgan satr tarkibidagi elementlar sonini aniqlang.

Dinamik xotiradan foydalanish, dinamik xotirani ishlatishda ko’rsatkich turlari Reja: 1. O’zgaruvchining adresi nima? Ko’rsatgich nima? 2. Dinamik xotiradan foydalanish 3. Dinamik xotirani ishlatishda qo llaniladigan asosiy protseduralar‟

Operativ xotira yachekalar (baytlar) ning ketma-ketligi sifatida tashkil etilgan.  Har bir yacheka o'z adresiga (tartib raqamiga) ega.  Adres - butun son bo'lib, ko'pincha o'n oltilik tizimda yoziladi.

Ko’rsatgich – bu xotiraning qandaydir yacheykasi manzilini saqlovchi o zgaruvchi.‟ • Koэrsatgichlar tiplashgan hisoblanadi: int i = 3; // int tipidagi o zgaruvchi int * p = ‟ 0; // int tipidagi o zgaruvchiga ko rsatgich ‟ ‟ • Null koэrsatgichga (0 qiymat ta minlangan) xotiraning hech qanday yacheykasiga ‟ mos keladi. • Koэrsatgichlar bilan ishlashda 2 ta operator mavjud: 1) o zgaruvchining manzilini ‟ olish operatori - & 2) manzildagi qiymatga murojaat - *. • p = &i; // i oэzgaruvchiga p ko rsatgich (bu xolatda p ko rsatgichga i ‟ ‟ o zgaruvchining manzili yoziladi) ‟ • *p = 10; // p manzil bo yicha yacheyka o zgaradi, ya ni i o zgaruvchining qiymati ‟ ‟ ‟ ‟ o zgaradi (i ning qiymati 3 emas, 10 bo ladi) ‟ ‟