【面试】联合体内存表示
来源:互联网 发布:仿淘宝 下拉刷新 编辑:程序博客网 时间:2024/06/05 17:52
联合体所有成员共用一块地址空间(对比:结构体不同成员的存放地址不同)。
(1)
#include<stdio.h>union{int i;char x[2];}a; void main(){a.x[0] = 10;a.x[1] = 1;printf("%d",a.i);}
答案:266 (低位低地址即a.x[0]=10=0x0A,高位高地址a.x[1]=0x01,内存占用情况是0x010A。)
(2)
main(){union{ /*定义一个联合*/int i;struct{ /*在联合中定义一个结构*/char first;char second;}half;}number;number.i=0x4241; /*联合成员赋值*/printf("%c%c\n",number.half.first, mumber.half.second);number.half.first='a'; /*联合中结构成员赋值*/number.half.second='b';printf("%x\n", number.i);getch();}
答案: AB (0x41对应'A',是低位;0x42对应'B',是高位)。
a=0x61, b=0x62,按照低位低地址,高位高地址的原则,得答案0x6261 (number.i和number.half共用一块地址空间)。
0 0
- 【面试】联合体内存表示
- 结构体,联合体,内存分配
- 结构体,联合体,内存分配
- 内存对齐 & 联合体(共用体)
- 联合体
- 联合体。。。
- 联合体
- 联合体
- 联合体
- 联合体
- 联合体
- 联合体
- 联合体
- 联合体
- 联合体
- 结构体内嵌联合体的内存占用
- C++内存结构体联合体所占内存
- 对象的内存表示
- List Set Map有什么异同?
- 完全新手的安卓视频教程学习笔记(一)
- 虚拟机ping不通win7
- 简单工厂模式
- 题目1197:奇偶校验
- 【面试】联合体内存表示
- 9.选择排序——堆排序
- 线性代数的疑惑
- 数据结构学习笔记8 树 课后习题
- java通过反射调类中的某个方法和获得类中的元素。
- 每一位Android开发者应该知道的Android体系架构和开发库(转)
- JVM 性能优化
- BSP 和设备驱动开发指南
- 汤姆大叔的博客