Кўрсаткичда сақланувчи адресдан фойдаланиш.
Кўрсаткичлар билан ишлашда кўп ҳолларда уларда ёзилган адреснинг қийматидан фойдаланилмайди. Олдинги қисмларда кўрсаткичларга ўзгарувчи адреси ўзлаштирилса кўрсаткич қиймати айнан шу адресга тенг бўлиши айтиб ўтилган эди. Бу тасдиқни 8.3. листинг орқали текшириб ўтамиз.
8.3. – листинг. Кўрсаткичда ёзилган қиймат.
#include
int main()
{
int myAge = 5, yourAge = 10;
int *pAge = &myAge;
cout<<“myAge:\t”<
cout<<“&myAge:\t”<<&myAge<<”\t&yourAge:\t” <<&yourAge<<”\n”;
cout<<“pAge:\t” <
cout <<“*pAge:\t”<<*pAge<< “\n”;
pAge = &yourAge;
cout<<“myAge:\t”<
cout<<“&myAge:\t”<<&myAge<<“\tyourAge:”<<“\t”<<&yourAge;
cout<<“pAge: \t” << pAge <<“\n”;
cout<<“*pAge:\t”<<* pAge<< “\n”;
cout<<“& pAge: \t” << &pAge<< “\n”;
return 0;
}
НАТИЖА
myAge: 5 your Age: 10
&myAge: 0x 355c &your Age : 0x 355 E
pAge: 0x 355c
*pAge: 5
my Age: 5 your Age: 10
&myAge: 0x355C &your Age : 0x 355E
page : 0х355E
*page : 10
&page: 0x355A
(Сизнинг натижаларингиз юқоридагилардан фарқ қилиши мумкин.)
Олдинги қисмларда биз бошқа ўзгарувчилар адресини кўрсаткичларга ўзлаштириш процедуралари билан батафсил танишган эдик. Лекин амалиётда кўрсаткичларни бундай қўлланилиши жуда кам учрайди. Нима учун ўзгарувчида сақланаётган қийматдан фойдаланиш учун кўрсаткичларни ишлатишимиз керак деган ҳақли савол туғилади. Юқорида келтирилган мисоллар кўрсаткичнинг ишлаш механизмини намойиш учун келтирилди. Аслида кўрсаткичлар асосан қуйидаги ҳолларда қўлланилади:
Маълумотларни хотиранинг объектлар ўртасида динамик тақсимланувчи соҳасида жойлаштириш ва улардан фойдаланиш учун;
Синфнинг ўзгарувчи ва функцияларига мурожаат қилиш учун;
Функцияларга параметрларларни мурожаат орқали узатиш учун.
Do'stlaringiz bilan baham: |