int *suxx=NULL; int *r=0;
Биринчи сатрда махсус NULL ўзгармаси ишлатилган, иккинчи сатрда 0 қиймат ишлатилган. Иккала ҳолда ҳам кўрсаткич ҳеч қандай объектга мурожаат қилмайди. Бўш кўрсаткич асосан кўрсаткични аниқ бир объектга кўрсатаётган ёки йўқлигини аниқлаш учун ишла- тилади.
Динамик хотирада new амали билан жой ажратиш ва уни адресини кўрсаткичга бериш:
int * n=new int; // биринчи оператор int * m=new int(10); // иккинчи оператор int * q=new int[5]; // учинчи оператор
Биринчи операторда new амали ёрдамида динамик хотирада int учун етарли жой ажратиб олиниб, унинг адреси n кўрсаткичга юкланади. Кўрсаткичнинг ўзи учун жой компиляция вақтида ажра- тилади.
6.1-расм. Динамик хотирадан жой ажратиш
Иккинчи операторда жой ажратишдан ташқари m адресига бошланғич қиймат - 10 сонини жойлаштиради.
Учинчи операторда int туридаги 5 элемент учун жой ажра- тилган ва унинг бошланғич адреси q кўрсаткичга берилаяпти.
Хотира new амали билан ажратилган бўлса, у delete амали билан бўшатилиши керак. Юқоридаги динамик ўзгарувчилар билан боғлан- ган хотира қуйидагича бўшатилади:
delete n; delete m; delete[]q;
Агарда хотира new[] амали билан ажратилган бўлса, уни бўшатиш учун delete [] амалини ўлчови кўрсатилмаган ҳолда қўллаш керак.
Хотира бўшатилганлигига қарамасдан кўрсаткични ўзини кейинчалик қайта ишлатиш мумкин.
Кўрсаткич устида амаллар
Кўрсаткич устида қуйидаги амаллар бажарилиши мумкин:
объектга воситали мурожаат қилиш амали;
қиймат бериш амали;
кўрсаткичга ўзгармас қийматни қўшиш амали;
айириш амали;
инкремент ва декремент амаллари;
солиштириш амали;
турга келтириш амали.
Воситали мурожаат қилиш амали кўрсаткичдаги адрес бўйича жойлашган қийматни олиш ёки қиймат бериш учун ишлатилади:
Do'stlaringiz bilan baham: |