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


Кўрсаткичнинг адресларни сақлаш воситаси сифатида қўлланилиши


Download 1.05 Mb.
bet59/86
Sana28.10.2023
Hajmi1.05 Mb.
#1730826
1   ...   55   56   57   58   59   60   61   62   ...   86
Bog'liq
C qo`llanma

Кўрсаткичнинг адресларни сақлаш воситаси сифатида қўлланилиши.


Дастурнинг ҳар бир ўзгарувчиси ўзининг адресига эгадир. Бу адресни сақлаш учун эса ўзгарувчига кўрсаткич эълон қилиш керак. Адреснинг ўзининг қийматини билиш эса унчалик шарт эмас.
Масалан, howOld ўзгарувчиси int типига эга. Бу ўзгарувчини адресини сaқловчи pAge кўрсаткичини эълон қилиш учун қуйидаги дастур фрагментини ёзиш лозим.
int *pAge = 0;

Бу сатрда pAge ўзгарувчиси int типига кўрсаткич сифатида эълон қилинаяпти.


pAge ўзгарувчиси бошқа ўзгарувчилардан умуман фарқ қилмайди. Бутун типли ўзгарувчини эълон қилишда биз унда бутун сон сақланишини кўрсатамиз. Қачонки ўзгарувчи бирор бир типга кўрсаткич деб эълон қилинса, бу кўрсаткич ўша типдаги ўзгарувчининг адресини ўзида сақлайди. Демак, кўрсаткичлар ҳам ўзгарувчиларнинг алоҳида тури экан.
Бу мисолда pAge ўзгарувчисига нол қиймат ўзлаштирилаяпти. Қиймати нолга тенг бўлган кўрсаткичлар бўш кўрсаткичлар дейилади. Кўрсаткич эълон қилинганда унга албатта бирор бир қиймат ўзлаштирилиши лозим. Агарда бу олдиндан аниқ бўлмаса унга 0 қиймат бериш зарур. Қиймат ўзлаштирилмаган кўрсаткичлар кейинчалик кўплаб нохуш ҳодисаларга сабаб бўлиши мумкин. Биз улар билан кейинроқ батафсил танишамиз.
pAge кўрсаткичи эълон қилинганда унга 0 қиймат берилиб, кейинчалик эса унга бошқа қиймат, масалан howOld ўзгарувчиси адресини ўзлаштириш мумкин. Қуйида буни амалга оширилиши кўрсатилган.

unsigned short int howOld=50; //ўзгарувчини эълон //қиламиз.


unsigned short int *pAge=0; //кўрсаткични эълон //қиламиз.
pAge= &howOld; //pAge кўрсаткичга howOld ўзгарувчи //адресини ўзлаштирамиз.

Биринчи сатрда unsigned short int типидаги ўзгарувчи эълон қилинган ва унга 50 қиймат ўзлаштирилган. Иккинчи сатрда эса unsigned short int типидаги pAge типига кўрсаткич эълон қилинган ва унга 0 қиймат ўзлаштирилган. Тип номи ва ўзгарувчи орасидаги юлдузча (*) белгиси ундан кейин келган ўзгарувчини кўрсаткич эканлигини англатади.


Охирги сатрда pAge кўрсаткичига howOld ўзгарувчиси адреси ўзлаштирилаяпти. Бунда адрес оператори (&) howOld ўзгарувчисини адресини олаяпти ва у ўзлаштириш амали орқали pAge кўрсаткичига ўзлаштирилаяпти.
Бу ҳолатда pAge ўзгарувчисининг қиймати howOld ўзгарувчининг адресига тенгдир. Қараб чиқилган дастур кодидаги охирги икки сатрни битта сатрга бирлаштириш мумкин.
unsigned short int = 50;
unsigned short int * pAge = & howOld;



Download 1.05 Mb.

Do'stlaringiz bilan baham:
1   ...   55   56   57   58   59   60   61   62   ...   86




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