Korsatgich va uning ishlatilishi Havolalar va ular bilan


Режа: • Ko’rsatgich va uning ishlatilishi • Havolalar va ular bilan ishlash

Ko’rsatgich va uning ishlatilishi • Ko’rsatkich – bu kompyuter xotirasi yacheykacining adresi yozilgan o’zgaruvchidir. Ko’rsatkichlar qanday ishlashini bilish uchun mashina xotirasi tashkil etilishining tayanch printsiplarini bilishimiz lozim. Mashina xotirasi nomerlangan yacheykalar ketmaketligidan iboratdir.

• Har bir o’zgaruvchining qiymati uning adresi deb ataluvchi alohida xotira yacheykasida saqlanadi. Quyidagi rasmda the. Age nomidagi, xotiradan to’rt bayt joy egallaydigan butun qiymatli o’zgaruvchining xotirada ifodalanishi ko’rsatilgan.

• Turli kompyuterlarda xotirani adreslash turlicha qoida asosida tashkil etiladi. Ko’p hollarda dasturchilar uchun biror bir o’zgaruvchini aniq adresini bilish zarur emas. Zarurat tug’ilganda bunday axborotni adres operatori (&) yordamida olish mumkin. Quyida operatorning qo’llanilishiga misol keltirilgan.

• • • unsigned short. Var = 5; unsigned long. Var = 65535; long s. Var = - 65535; cout << “short. Var : t” << short. Var ; cout << “Address of short. Var: t” ; cout << &short. Var<< “n”; 6

• cout << “long. Var : t” << long. Var ; • cout << “ Address of Long. Var: t” ; • cout << &long. Var<< “n”; • cout << “ s. Var : t” << s. Var; • cout << “Address of s. Var: t” << &s. Var <<“n” ; 7

Havola: Dasturning har bir o’zgaruvchisi o’zining adresiga egadir. Bu adresni saqlash uchun esa o’zgaruvchiga ko’rsatkich e’lon qilish kerak. Adresning o’zining qiymatini bilish esa unchalik shart emas. unsigned short int how. Old=50; //o’zgaruvchini e’lon qilamiz. unsigned short int *p. Age=0; //ko’rsatkichni e’lon qilamiz. p. Age= &how. Old; //p. Age ko’rsatkichga how. Old o’zgaruvchi adresini o’zlashtiramiz.

Havolalar va ular bilan ishlash Havola – bu o’zgaruvchi psevdonimidir. Havola hosil qilinishi bilan biz unga boshqa ob’ekt nomi yordamida uning adresatini o’zlashtiramiz. Shu vaqtdan boshlab havola joriy ob’ektning alternativ nomi bo’lib xizmat qiladi va bu havola ustida bajarilgan barcha amallar ushbu ob’ektga tegishli bo’ladi. Havolalarni e’lon qilishda adresatdagi ob’ekt tipi, undan keyin havola operatori (&), undan keyin esa havola nomi yoziladi.

int & r. Some. Int = some. Int • {int int. One; • int &r. Some. Ref = int. One; • int. One = 5; • cout << "int. One: "<< int. One << endl; • cout<< "r. Some. Ref: "<<r. Some. Ref<< endl; • r. Some. Ref = 7; • cout<< "int. One: " << int. One <<endl; • cout<< "r. Some. Ref: " << r. Some. Ref << endl; }
- Slides: 10