Malumotlar tuzilmasi va algoritmlar


Download 269.85 Kb.
bet6/7
Sana18.02.2023
Hajmi269.85 Kb.
#1213376
1   2   3   4   5   6   7
Bog'liq
1 amaliy topshiriq

Бирлашмалар (union)
Бирлашмалар худди структураларга ўхшаш тип хисобланади, фарқи шуки, бирлашмаларда бир вақтнинг ўзида фақат унинг битта элементигагина мурожаат қилиш мумкин. Бирлашма типи қуйидагича аниқланади:
union { 1-элементни тавсифлаш;
...
n-элементни тавсифлаш;
};
Бирлашмаларнинг асосий хусусияти шуки, эълон қилинган хар бир элемент учун хотиранинг битта худуди ажратилади, яъни улар бир-бирини қоплайди. Бу ерда хотиранинг шу қисмига исталган элемент билан мурожаат қилса бўлади, лекин бунинг учун элемент шундай танланиши керакки, олинадиган натижа маънога эга бўлиши керак. Бирлашманинг элементига мурожаат худди структура элементига мурожаат каби амалга оширилади. Бирлашмалар қўлланиладиган хотира объектини инициализация қилиш мақсадида ишлатилади, агарда хар бир мурожаат вақтида бир қанча объектлардан фақат биттаси фаоллаштирилса.
Бирлашма типидаги ўзгарувчи учун ажратиладиган хотира хажми ушбу типнинг энг узун элементи учун кетадиган хотира хажми билан аниқланади. Кичик узунликдаги элемент ишлатилганда, бирлашма типидаги ўзгарувчи учун ажратилган хотира сохасининг айрим қисми ишлатилмайди. Бирлашманинг барча элементи учун хотиранинг битта адресдан бошланувчи битта сохаси ажратилади. Масалан:


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<
system("pause");
}

Download 269.85 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




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