联合是由C编程语言中的不同数据类型的多个变量共享的存储位置。
结构并集的语法如下-
union uniontag{ datatype member 1; datatype member 2; ---- ---- datatype member n; };
以下示例显示了结构并集的用法-
union sample{ int a; float b; char c; };
以下是联合变量的声明。它有以下三种类型-
union sample{ int a; float b; char c; }s;
union{ int a; float b; char c; }s;
union sample{ int a; float b; char c; }; union sample s;
声明并集后,编译器会自动创建最大大小的变量类型以将变量保存在并集中。
在任何时候,只能引用一个变量。
使用相同的结构语法访问联合成员。
点运算符用于访问成员。
箭头运算符(->)用于使用指针访问成员。
以下程序显示了结构并集的用法。
union sample{ int a; float b; char c; } main ( ){ union sample s = {10, 20.5, "A"}; printf("a=%d",s.a); printf("b=%f",s.b); printf("c=%c",s.c); }输出结果
执行以上程序后,将产生以下结果-
a = garbage value b = garbage value c = A
一个结构可以嵌套在一个并集内部,这称为结构的并集。
可以在结构内部创建并集。
另一个C程序显示了结构并集的用法,如下所示-
struct x{ int a; float b; }; union z{ struct x s; }; main ( ){ union z u; u.s.a = 10; u.s.b = 30.5; printf("a=%d", u.s.a); printf("b=%f", u.s.b); }输出结果
执行以上程序后,将产生以下结果-
a = 10 b = 30.5