8.1. – листинг. Адрес оператори .
#inсlude < iostheam.h >
int main()
{
unsigned short shortVar = 5;
unsigned long longVar = 65535;
long sVar = - 65535;
cout << “shortVar :\t” << shortVar ;
cout << “Address of shortVar:\t” ;
cout<<&shortVar<< “\n”;
cout << “longVar :\ t” << longVar ;
cout << “ Address of LongVar: \ t” ;
cout<< &longVar<< “\n”;
cout << “ sVar :\t” << sVar;
cout << “Address of sVar:\t”;
cout << &sVar <<“\n” ;
return 0;
}
НАТИЖА:
shortVar : 5 Address of shortVar : 0х8fc9:fff4
longVar:65535 Address of longVar: 0х8fc9:fff2
sVar: -65535 Address of sVar : 0х8fc9:ffee.
ТАҲЛИЛ
Дастурнинг бошида учта ўзгарувчи эълон қилинади ва уларга қиймат ўзлаштирилади: 4– сатрда unsigned short типида, 5- сатрда unsigned long типида ва 6 – сатрда long типида. Кейин эса 8 – 18 – сатрларда бу ўзгарувчиларнинг қийматлари ва адрес оператори (&) ёрдамида олинган адреслари ҳақида маълумотлар чиқарилади. Дастур ишга туширилиши билан 80386 процессорли компьютерда shortVar ўзгарувчиси қиймати 5 га, унинг адреси эса 0х8fc9:fff4 тенглиги аниқланади. Ўзгарувчини жойлашиш адреси компютер орқали танланади ва у дастурнинг навбатдаги ишга туширилишида ўзгариши мумкин. Шунинг учун сизнинг натижаларингиз олдингиларидан фарқ қилиши мумкин. Лекин биринчи ва иккинчи ўзгарувчиларнинг адреслари фарқи доимо ўзгармай қолади. short типи икки байт жой эгаллашидан бу фарқ 2 байтни ташкил этади. Иккинчи ва учинчи адреслар орасидаги фарқ 4 байтни ташкил этади. Ҳақиқатан ҳам long типидаги ўзгарувчи тўрт байт жой эгаллайди. Бу ўзгарувчиларни хотирага жойлаштириш тартиби 8.2. – расмда келтирилган.
8.2. – расм. Ўзгарувчининг хотирада сақланиш схемаси
Do'stlaringiz bilan baham: |