📅  最后修改于: 2020-10-22 08:25:58             🧑  作者: Mango
与结构类似,C语言中的Union是用户定义的数据类型,用于存储不同类型的元素。
一次,联合中只有一个成员可以占用内存。换句话说,我们可以说在任何情况下联合的大小等于其最大元素的大小。
它占用的内存较少,因为它仅占用最大成员的大小。
只有最后输入的数据可以存储在联合中。它会覆盖先前存储在联合中的数据。
union关键字用于定义联合。让我们看看在c中定义并集的语法。
union union_name
{
data_type member1;
data_type member2;
.
.
data_type memeberN;
};
让我们看一下在c中为雇员定义工会的示例。
union employee
{ int id;
char name[50];
float salary;
};
让我们看一个简单的C语言联合示例。
#include
#include
union employee
{ int id;
char name[50];
}e1; //declaring e1 variable for union
int main( )
{
//store first employee information
e1.id=101;
strcpy(e1.name, "Sonoo Jaiswal");//copying string into char array
//printing first employee information
printf( "employee 1 id : %d\n", e1.id);
printf( "employee 1 name : %s\n", e1.name);
return 0;
}
输出:
employee 1 id : 1869508435
employee 1 name : Sonoo Jaiswal
如您所见,由于名称具有较大的内存大小,所以id获得垃圾值。因此,只有名称才具有实际价值。