...
int k = 74;
int *kPtr = &k;
...
cout << k << " --- " << *kPtr << endl; // Ekranda: 74 --- 74
cin >> *kPtr; // 290 qiymatini kiritaylik...
cout << k << " === " << *kPtr << endl; // Ekranda: 290 === 290
*kPtr = 555;
cout << k << " ... "<< *Ptr << endl; // Ekranda: 555 ... 555
...
Ko'rib turganimizdek, biz kPtr ko'rsatkichi orqali k o'zgaruvchining ham qiymatlarini o'zgartira oldik. Demak *kPtr chap identefikatordir, chunki uning qiymatini qiymat berish operatori yordamida o'zgartira olar ekanmiz.
Agar pointerimiz 0 ga teng bo'lsa, uni ko'rsatish operatori - '*' bilan ko'llash ko'p hollarda dastur ijrosi hatolariga olib keladi. Undan tashqari, boshlangich qiymatlari aniqlanmagan pointerni qiymatiga ko'rsatish eng kamida mantiqiy hatolarga olib keladi, bunung sababi, pointer ko'rsatayotgan hotira qismida oldingi ishlagan dasturlar kodlari qolgan bo'lishi mumkin. Bu esa bizga hech keragi yo'q. Pointer bo'lmagan o'zgaruvchilarga ko'rsatish operatorini qo'llash ta'qiqlanadi.
Aslini olganda, & adres olish operatori va * ko'rsatish operatorlari, bir-birining teskarisidir. Bir misol kertiraylik.
Do'stlaringiz bilan baham: |