文章目录
共用体看起来很像结构体,只不过关键字由 struc t变成了 union。
共用体和结构体的区别在于:结构体定义了一个由多个数据成员组成的特殊类型,而共用体定义了一块为所有数据成员共享的内存。
1、共用体变量的引用
#include<stdio.h>
union DataUnion /*声明共用体类型*/
{
int iInt; /*成员变量*/
char cChar;
};
int main()
{
union DataUnion Union; /*定义共用体变量*/
Union.iInt=97; /*为共用体变量中成员赋值*/
printf("iInt: %d\n",Union.iInt); /*输出成员变量数据*/
printf("cChar: %c\n",Union.cChar);
Union.cChar='A'; /*改变成员的数据*/
printf("iInt: %d\n",Union.iInt); /*输出成员变量数据*/
printf("cChar: %c\n",Union.cChar);
return 0;
}
输出结果:
在程序中改变共用体的一个成员,其他成员也会随之改变。当给某个特定的成员进行赋值时,其他成员的值也会具有一致的含义,这是因为它们的值的每一个二进制位都被新值所覆盖。
2、共用体变量初始化
注意:对共用体变量初始化时,只需要一个初始化值就足够了,其类型必须和共用体的第一个成员的类型相一致。
#include<stdio.h>
union DataUnion /*声明共用体类型*/
{
int iInt; /*成员变量*/
char cChar;
};
int main()
{
union DataUnion Union={97}; /*定义共用体变量,并进行初始化*/
printf("iInt: %d\n",Union.iInt); /*输出成员变量数据*/
printf("cChar: %c\n",Union.cChar);
return 0;
}