最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
浅谈C语言共用体和与结构体的区别
时间:2022-06-25 04:39:31 编辑:袖梨 来源:一聚教程网
共用体:
使用union 关键字
共用体内存长度是内部最长的数据类型的长度。
共用体的地址和内部各成员变量的地址都是同一个地址
结构体大小:
结构体内部的成员,大小等于最后一个成员的偏移量+最后一个成员大小+末尾的填充字节数。
结构体的偏移量:某一个成员的实际地址和结构体首地址之间的距离。
结构体字节对齐:每个成员相对于结构体首地址的偏移量都得是当前成员所占内存大小的整数倍,如果不是会在成员前面加填充字节。结构体的大小是内部最宽的成员的整数倍。
共用体
代码如下 | 复制代码 |
//gcc让不同类型的变量共享内存地址 ,同一时间只有一个成员有效 union data{ inta; charb; intc; }; intmain(){ union data data_1 = {1};//初始化时只填写一个值。(同一时间只有一个成员有效) data_1.b ='c' data_1.a = 10;//后赋值的才有效。前面的赋值被覆盖 //打印地址,发现指向同一个地址 printf("%pn%pn%pn",&data_1.a,&data_1.a,&data_1.a); return0; } |
相关文章
- 《尼尔:机械纪元》武器黑之倨傲属性及特殊能力介绍 11-15
- 《尼尔:机械纪元》机械生命体的枪获得方法介绍 11-15
- 《尼尔:机械纪元》武器机械生命体的枪属性及特殊能力介绍 11-15
- 《尼尔:机械纪元》天使之圣翼获得方法介绍 11-15
- 《尼尔:机械纪元》武器天使之圣翼属性及特殊能力介绍 11-15
- 《尼尔:机械纪元》武器恶魔之秽牙属性及特殊能力介绍 11-15