一、定义
结构体可以同时存储不同的数据类型,里面的成员可以同时赋值。结构体可以存储不同的数据类型,但是只能有一个成员被赋值。原因是结构体的内存大小由所有的成员共同决定,共用体的成员则共同占用同一个内存。当共用体成员被同时赋值的时候,因最新的为准
- 代码实现:
#include <stdio.h> #include <string.h> // 定义结构体 union Data { int i; float f; char str[20]; }; int main() { // 定义结构变量 union Data data; printf("最大的存储区:%d\n", sizeof(data)); // 使用成员运算符(.)访问结构体 // 由于重复赋值,则以最后一个为准 data.i = 24; data.f = 220.5; strcpy(data.str, "xiaomage"); printf("i:%d\nf:%f\n", data.i, data.f); printf("str:%s\n", data.str); // 使用成员运算符(.)访问结构体 printf("************\n"); data.i = 24; printf("i:%d\n", data.i); data.f = 220.5; printf("f:%f\n",data.f); strcpy(data.str,"xiaomage"); printf("str:%s\n",data.str); return 0; }
- 运行结果:
最大的存储区:20 i:1868654968 f:69761631104840121000000000000.000000 str:xiaomage ************ i:24 f:220.500000 str:xiaomage
二、共用体作用
共用体一个重要的作用就是节省内存。有的时候,多个数据只用到一个的时候,我们就可以用共用体节省内存。
内存对齐