Muhammad Al-Xorazmiy nomidagi Toshkent Axborot texnologiyalari Universiteti Dasturiy injenering fakulteti swd 008 guruh talabasi Qo’chqorov Jasurning Dasturlash fanidan “Ko’rsatkich nima ?


Dinamik xotirada new amali bilan joy ajratish va uni adresini koʻrsatkichga berish


Download 166.52 Kb.
bet4/9
Sana28.12.2022
Hajmi166.52 Kb.
#1019139
1   2   3   4   5   6   7   8   9
Bog'liq
Jasur Qo\'chqorov dasturlash mustaqil i9sh

Dinamik xotirada new amali bilan joy ajratish va uni adresini
koʻrsatkichga berish:


int * n=new int; // birinchi operator
int * m=new int(10); // ikkinchi operator
int * q=new int[5]; // uchinchi operator

Birinchi operatorda new amali yordamida dinamik xotirada int


uchun yetarli joy ajratib olinib, uning adresi n koʻrsatkichga yuklanadi.
Koʻrsatkichning oʻzi uchun joy kompilyasiya vaqtida ajratiladi.
delete amali
Ikkinchi operatorda joy ajratishdan tashqari m adresiga
boshlangʻich qiymat - 10 sonini joylashtiradi.
Uchinchi operatorda inttipidagi 5 ta element uchun joy ajratilgan
va uning boshlangʻich adresi q koʻrsatkichga berilyapti.
Xotira new amali bilan ajratilgan boʻlsa, u delete amali bilan
boʻshatilishi kerak. Yuqoridagi dinamikoʻzgaruvchilar bilan
bogʻlangan xotira quyidagicha boʻshatiladi:delete n; delete m;
delete[]q;
Agarda xotira new[] amali bilan ajratilgan boʻlsa, uni boʻshatish
uchun delete [] amalini oʻlchovi koʻrsatilmagan holda qoʻllash kerak.
Xotira boʻshatilganligiga qaramasdan koʻrsatkichni oʻzini
keyinchalik qayta ishlatish mumkin.
Koʻrsatkich ustida amallar. Koʻrsatkich ustida quyidagi amallar
bajarilishi mumkin:
ob’ektga vositali murojaat qilish amali;
qiymat berish amali;
koʻrsatkichga oʻzgarmas qiymatni qoʻshish amali;
ayirish amali;
inkrement va dekrement amallari;
solishtirish amali;
tipga keltirish amali.
Vositali murojaat qilish. Vositali murojaat qilish amali
koʻrsatkichdagi adres boʻyicha joylashgan qiymatni olish yoki qiymat
berish uchun ishlatiladi:

char a; // char tipidagi oʻzgaruvchi eʻloni




char *p=new char; // Koʻrsatkichni
eʻlon qilib, unga
// dinamik
xotiradan ajratilgan
// xotiraning
adresini berish
*p=ʻbʻ; // p adresiga qiymat
joylashtirish
a=*p; // a oʻzgaruvchisiga p adresidagi
qiymatni berish

Shuni qayd etib oʻtish kerakki, xotiraning aniq bir joyidagi adresni


bir paytning oʻzida bir nechta va har xil tipdagi koʻrsatkichlarga berish
mumkin va ular orqali murojaat qilinganda ma’lumotlarning har xil
tipdagi qiymatlarini olish mumkin:

unsigned long int A=0Xcc77ffaa;
unsigned short int * pint=(unsigned short
int*)&A;
unsigned char* pchar=(unsigned char*)&A;
cout<
Ekranga har xil qiymatlar chop etiladi:
cc77ffaa ffaa aa



Oʻzgaruvchilar bitta adresda joylashgan holda yaxlit qiymatning


turli boʻlaklarini oʻzlashtiradi. Bunda, bir baytdan katta joy egallagan
son qiymatining xotirada «teskari» joylashishi inobatga olinishi kerak.
Agar har xil tipdagi koʻrsatkichlarga qiymatlar berilsa, albatta tipga
keltirish amalidan foydalanish kerak:

int n=5;
float x=1.0;
int *pi=&n;
float *px=&x;
void *p;
int *r,*r1;
px=(float *)&n;
p=px;
r=(int *)p;
r1=pi;




Download 166.52 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling