“Ахборот технологиялари” факультети “Ахборот технологияларини дастурий таъминоти” кафедраси “маълумотлар тузилмаси ва алгоритмлар”
Download 0.64 Mb. Pdf ko'rish
|
- Bu sahifa navigatsiya:
- Бирлашмалар (union)
Структуралар
Структуралар турли типдаги майдонлардан ташкил топган ёзув хисобланади. Структураларни эълон қилиш учун struct калит сўзи ишлатилади. Ундан кейин типга ном берилади ва {} қавс ичида майдонлар типлари ва номлари эълон қилинади. Яратилган тип билан эълон қилинган ўзгарувчилар ёзув хисобланади, массивлар эса жадвални ташкил этади. Масалан, #include using namespace std; int main() { struct Guruh{ int n; char fio[30]; }; Guruh talaba[5]; for(int i=0;i<5;i++){ talaba[i].n=i+1; cin>>talaba[i].fio; } for(int i=0;i<5;i++) cout< system("pause"); } Бирлашмалар (union) Бирлашмалар худди структураларга ўхшаш тип хисобланади, фарқи шуки, бирлашмаларда бир вақтнинг ўзида фақат унинг битта элементигагина мурожаат қилиш мумкин. Бирлашма типи қуйидагича аниқланади: union { 1-элементни тавсифлаш; ... n-элементни тавсифлаш; }; Бирлашмаларнинг асосий хусусияти шуки, эълон қилинган хар бир элемент учун хотиранинг битта худуди ажратилади, яъни улар бир-бирини қоплайди. Бу ерда хотиранинг шу қисмига исталган элемент билан мурожаат қилса бўлади, лекин бунинг учун элемент шундай танланиши керакки, олинадиган натижа маънога эга бўлиши керак. Бирлашманинг элементига мурожаат худди структура элементига мурожаат каби амалга 10 оширилади. Бирлашмалар қўлланиладиган хотира объектини инициализация қилиш мақсадида ишлатилади, агарда хар бир мурожаат вақтида бир қанча объектлардан фақат биттаси фаоллаштирилса. Бирлашма типидаги ўзгарувчи учун ажратиладиган хотира хажми ушбу типнинг энг узун элементи учун кетадиган хотира хажми билан аниқланади. Кичик узунликдаги элемент ишлатилганда, бирлашма типидаги ўзгарувчи учун ажратилган хотира сохасининг айрим қисми ишлатилмайди. Бирлашманинг барча элементи учун хотиранинг битта адресдан бошланувчи битта сохаси ажратилади. Масалан: union { char fio[30]; char adres[80]; int yoshi; int telefon; } inform; union { int ax; char al[2]; } ua; Бирлашма типидаги inform объектини ишлатганда қиймат қабул қилган элементинигина қайта ишлаш мумкин, яъни масалан inform.fio элементига қиймат берилгандан кейин бошқа элементларга мурожаат маънога эга эмас. ua бирлашмаси al элементининг кичик ua.al[0] ва катта ua.al[1] байтларига алохида мурожаат қилиш мумкин. Бирлашма типига оид мисол кўриб чиқамиз. #include using namespace std; int main() { union Guruh{ int n; int m; }; Guruh w; w.n=12;// w бирлашмасининг n элементига қиймат бериш w.m=23; // w бирлашмасининг m элементига қиймат бериш cout< //ёзилгани сабабли экранга 23 23 жавоби чиқарилади. system("pause"); } Download 0.64 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling