W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
union 是特殊數(shù)據(jù)類型,可以將不同的數(shù)據(jù)類型存儲(chǔ)在同一存儲(chǔ)位置。
要定義Union,您必須以與定義結(jié)構(gòu)相似的方式使用并集union語句。
union [union tag] {
member definition;
member definition;
...
member definition;
} [one or more union variables];
union標(biāo)簽tag是可選的,每個(gè)成員定義都是一個(gè)普通變量定義,如int i;或浮動(dòng)f;在并集union定義的末尾,在最后一個(gè)分號(hào)之前,您可以指定一個(gè)或多個(gè)并集變量,但這是可選的。這是定義名為Data的聯(lián)合類型的方法,該類型具有三個(gè)成員 i , f 和 str -
union Data {
int i;
float f;
char str[20];
} data;
Data 類型的變量可以存儲(chǔ)整數(shù),浮點(diǎn)數(shù)或字符串,這意味著可以使用一個(gè)變量來存儲(chǔ)多種類型的數(shù)據(jù)。
import std.stdio;
union Data {
int i;
float f;
char str[20];
};
int main( ) {
Data data;
writeln( "Memory size occupied by data : ", data.sizeof);
return 0;
}
編譯并執(zhí)行上述代碼后,將產(chǎn)生以下輸出-
Memory size occupied by data : 20
您將使用union關(guān)鍵字定義union類型的變量。
以下示例說明了union的用法-
import std.stdio;
union Data {
int i;
float f;
char str[13];
};
void main( ) {
Data data;
data.i=10;
data.f=220.5;
data.str="D Programming".dup;
writeln( "size of : ", data.sizeof);
writeln( "data.i : ", data.i);
writeln( "data.f : ", data.f);
writeln( "data.str : ", data.str);
}
編譯并執(zhí)行上述代碼后,將產(chǎn)生以下輸出-
size of : 16
data.i : 1917853764
data.f : 4.12236e+30
data.str : D Programming
在這里,您可以看到工會(huì)的 i 和 f 的值已變更,因?yàn)榉峙浣o變量的最終值已占用內(nèi)存位置。
現(xiàn)在讓我們?cè)俅尾榭赐皇纠渲幸淮螌⑹褂靡粋€(gè)變量,這是擁有Union的主要目的-
import std.stdio;
union Data {
int i;
float f;
char str[13];
};
void main( ) {
Data data;
writeln( "size of : ", data.sizeof);
data.i=10;
writeln( "data.i : ", data.i);
data.f=220.5;
writeln( "data.f : ", data.f);
data.str="D Programming".dup;
writeln( "data.str : ", data.str);
}
編譯并執(zhí)行上述代碼后,將產(chǎn)生以下輸出-
size of : 16
data.i : 10
data.f : 220.5
data.str : D Programming
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: