Тилига кириш услубий қўлланма


Ҳаволалар билан ишлашда адрес операторининг(&) қўлланилиши



Download 0,98 Mb.
bet77/91
Sana28.04.2022
Hajmi0,98 Mb.
#588113
1   ...   73   74   75   76   77   78   79   80   ...   91
Bog'liq
C

Ҳаволалар билан ишлашда адрес операторининг(&) қўлланилиши.

Агарда ҳаволанинг адресини олмоқчи бўлсак, у ўзининг адресати адресини қайтаради. Ҳавола ўзига хос табиати айнан шу ҳолатдир. Ҳаволалар ўзларининг адресатларининг псевдонимлари ҳисобланадилар. Яъни улар адресатлари билан бир хил адресга эгадирлар. Ҳаволаларнинг бу хоссаси 9.2 – листингда намойиш қилинган.


9.2 – листинг. Ҳаволанинг адресини олиш.

  1. // 9. 2. – листинг.

  2. // Ҳаволаларни ишлатишга мисол.

  3. # include < iostream.h>

  4. int main( )

  5. {

  6. int intOne;

  7. int &rSomeRef = intOne;

  8. int One = 5;

  9. cout << “ intOne:” << intOne << endl;

  10. cout <<“& intOne:”<< & intOne<< endl;

  11. cout<< “& rSomeRef:”<< &rSomeRef << endl;

  12. return 0;

  13. }

НАТИЖА:
intOne : 5
rSomeRef : 5
& intOne : 0 X 3500
& rSomeRef: 0 X 3500
ТАҲЛИЛ
Бу ҳолатда ҳам rSomeRef ҳаволага intOne ўзгарувчи ўзлаштирилди. Дастурда rSomeRef ҳаволаси intOne ўзгарувчисининг адреси чиқарилди ва улар бир хил эканлиги аниқланди. С++ тилида ҳаволани адресини олиш операцияси қараб чиқилмаган, чунки бу мантиққа мос келмайди. Ҳаволалар тузилиши билан уларга қиймат ўзлаштирилади ва улар ҳақиқатан ҳам ўз адресатларининг синоними бўлиб қоладилар. Адрес оператори буни тасдиқлаб турибди.


Ҳаволаларга қайта қиймат ўзлаштирилмайди.


Ҳаволалар ўзларининг адресатларининг псевдоними бўлганликлари сабабли уларга қайта қиймат ўзлаштириш мумкин эмас. Агарда бундай ҳол рўй берса, ҳавола мурожаат қилиб турган адресатга ҳам янги қиймат ўзлаштирилади. 9.3- листингда бу ҳолат намойиш қилинган.


9.3. – листинг. Ҳаволага қиймат ўзлаштириш

  1. // 9.3. – Листинг.

  2. // Ҳаволаларга қиймат ўзлаштириш


  3. # include


  4. int main()

  5. {

  6. int intOne;

  7. int & rSomeRef = intone;


  8. intOne = 5;

  9. cout << “ intOne:\ t” << intOne << endl;

  10. cout << “ rSomeRef :\ t”<< rSomeRef << endl;

  11. cout << “& intOne:\ t” << & intOne << endl;

  12. cout << “& rSomeRef:\t”<< & rSomeRef << endl;


  13. int intTwo= 8;

  14. rSomeRef = intTwo;

  15. // Бу ерда сиз кутмаган амал бажарилди.

  16. cout << “\n intOne: \ t” << intOne << endl ;

  17. cout << “intTwo: \ t “ << intTwo << endl;

  18. cout<<“rSomeRef :\t” << rSomeRef << endl;

  19. cout<<“& intOne : \t” << & intOne << endl;

  20. cout <<“& intTwo : \t” << &intTwo << endl;

  21. cout <<“& rSomeRef: \t” <<& rSomeRef<< endl;

  22. return 0;

  23. }

HАТИЖА:
intOne : 5
rSomeRef : 5
&intOne : 0 * 213 e
&rSomeRef : 0 * 213 e
intOne : 8
intTwo : 8
rSomeRef : 8
&intOne : 0 * 213 e
&intTwo: 0 * 2130
&rSomeRef : 0 * 213 e

ТАҲЛИЛ
8 – ва 9 – сатрларда бутун сонли ўзгарувчи ва унга ҳавола эълон қилинди. 11–сатрда эса бутун сонли ўзгарувчига 5 қиймат ўзлаштирилди, 12 – 15 – сатрларда эса ўзгарувчи ва унга ҳаволанинг қиймати, ҳамда уларнинг адреслари экранга чиқарилди.


17 – сатрда intTwo номли янги ўзгарувчи тузилди ва унга 8 қиймат ўзлаштирилди. 18 – сатрда rSomeRef ҳаволага қайта қиймат ўзлаштиришга, яъни уни intTwo ўзгарувчисининг псевдонимига айлантиришга ҳаракат қилинди. Лекин биз кутган ҳол юз бермади. rSomeRef ҳавола олдингидек intOne ўзгарувчисининг псевдоними бўлиб қолаверди, 18 – сатрда бажарилган амал эса қуйидаги жумлага эвивалент бўлиб қолди холос.
intOne = intTwo
Бу 19 – ва 21 – сатрлар орқали уларнинг қийматини экранга чиқарилиши натижасида яна бир бор ўз тасдиғини топди: уларнинг қиймати intTwo ўзгарувчисининг қиймати билан устма – уст тушди. 23 – 25 – сатрлар орқали экранга чиқарилган маълумот эса rSomeRef ҳавола intTwo ўзгарувчисига эмас, балки ҳали ҳам intOne ўзгарувчисига мурожаат қилаётганлигини тасдиқлайди.



Download 0,98 Mb.

Do'stlaringiz bilan baham:
1   ...   73   74   75   76   77   78   79   80   ...   91




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish