共同体赋值
共同体变量的初始化赋值
定义共同体变量时可以对变量附初始值,但只能对变量的第一个成员赋初值,不可像结构体变量那样对所有的成员赋初值。
union mydata
{
int i;
char j;
float k;
};
union mydata data = {9}; //将9付给成员i
union mydata data = {'a'}; //将'a'赋值给成员i,即i的值为'a'的ASCII码
//初值必须用{}括起来
定义后修改共同体变量的值
定义了共同体以后,如果要对其赋值,则只能通过成员对其赋值,不可对其整体赋值。
data.i = 9;
由于共同体变量的各成员共享同一地址的内存单元,共同体保存的是最后一次存入的成员值。
union mydata data;
data.i = 9;
data.j = 'a';
//data.j的值才是有效的成员值
//data.i的值也将变为97