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


Кўрсаткичларни эълон қилишда const калитли сўзини ишлатилиши


Download 1.05 Mb.
bet67/86
Sana28.10.2023
Hajmi1.05 Mb.
#1730826
1   ...   63   64   65   66   67   68   69   70   ...   86
Bog'liq
C qo`llanma

Кўрсаткичларни эълон қилишда const калитли сўзини ишлатилиши.


Кўрсаткичларни эълон қилишда const калитли сўзи тип спецификаторидан ёки олдин, ёки кейин ёзилади. Масалан, уларнинг қуйидаги вариантларда эълон қилиниши тўғридир:


const int *pOne;


int * const pTwo;
const int * сonst pThree;

Бу мисолда pOne кўрсаткичи int типидаги ўзгармасни адресини ўзида сақлайди. Шунинг учун у кўрсатаётган қийматни ўзгартириш мумкин эмас.


pTwo кўрсаткичи int типи кўрсаткич бўлган ўзгармасдир. Бу ҳолда кўрсаткич адресида ёзилган қийматни ўзгартириш мумкин, лекин адреснинг ўзини ўзгартириб бўлмайди.
Ниҳоят, pThree кўрсаткичи int типидаги ўзгармасни адресини ўзида сақловчи ўзгармас бўлган кўрсаткичдир. У хотиранинг битта ва фақат битта адресини ўзида сақлайди ва бу адресдаги қиймат ҳам ўзгармасдир.
Биринчи навбатда қандай қиймат ўзгармас деб эълон қилинаётганлигини билишимиз керак. Кўрсаткични ўзими ёки унда сақланаётган қийматми? Агарда const калитли сўзи ўзгарувчининг типидан олдин ёзилган бўлса, демак аниқланган ўзгарувчимиз ўзгармас бўлади. Агарда const калитли сўзи ўзгарувчи типидан кейин қўйилган бўлса, у ҳолда кўрсаткичнинг ўзи ўзгармасдир. Қуйидаги мисолларни қараймиз.

const int * p1 // int типли ўзгармасга кўрсаткич.


int *const p2 // ўзгармас кўрсаткич,
//яъни доимо хотирадаги бир соҳани кўрсатиб туради.

Функция аъзоларга кўрсаткичларни эълон қилишда const калитли сўзини қўлланилиши.


Олдинги мавзуларда синф функция – аъзоларини аниқлашда const калитли сўзини қўлланилишини кўриб чиққан эдик. Агарда функция ўзгармас деб эълон қилинса, компилятор у орқали жорий объектнинг маълумотларини ўзгартирилишини чеклар эди.


Агарда объектга кўрсаткич ўзгармас деб эълон қилинган бўлса, биз ундан фақатгина cоnst спецификатори билан аниқланган методларни чақириш учунгина фойдалана оламиз. Бу 8.10. - листингда кўрсатиб ўтилган.



Download 1.05 Mb.

Do'stlaringiz bilan baham:
1   ...   63   64   65   66   67   68   69   70   ...   86




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