定义
共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值。共用体提供了一种使用相同的内存位置的有效方式。简单的说就是共用体中声明的多个变量使用同一地址,这个地址上只会带有一个值。
实例
#include <stdio.h>
#include <string.h>
// 共用体的声明方式
/*union union_tag
{
member definition;
member definition;
...
member definition;
} [one or more union variables]; */
union Data{
int i;
float f;
char str[20];
}data;
int main(void){
union Data data;//声明一个共用体,需要用union+tag来声明
// 这里用.来访问共用体中的变量
data.i=10;
printf("data.i : %d\n",data.i);
data.f=220.5;
printf("data.f : %f\n",data.f);
strcpy(data.str,"C programing");
printf("data.str : %s\n",data.str);
return 0;
}
/*
The result is:
data.i : 10
data.f : 220.500000
data.str : C programing
We can know that the program has output the correct result.
*/
当我们修改其中的代码为:
data.i = 10;
data.f = 220.5;
strcpy( data.str, "C Programming");
printf( "data.i : %d\n", data.i);
printf( "data.f : %f\n", data.f);
printf( "data.str : %s\n", data.str);
我们可以发现输出了错误的结果。
网友评论