首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

union的赋值及小端形式

2012-10-19 
union的赋值及小端模式C/C++ code#include stdio.hunion{int iunsigned char ch[2]}studentint main(

union的赋值及小端模式

C/C++ code
#include <stdio.h>union{    int i;    unsigned char ch[2];}student;int main(){    //union Student student;    student.i = 0x1420;    printf("%d %d",student.ch[0],student.ch[1]);    return 0;}

系统是基于小端模式的,看了http://topic.csdn.net/u/20120920/21/6a6a1ba7-dc84-49f7-93b9-9a3e39fe837a.html?seed=1907534755&r=79721416,还是不明白,明明是给student.i赋值:
C/C++ code
student.i = 0x1420;

而char ch[2]并没有被赋值,怎么打印输出student.ch[0],student.ch[1]的值呢

[解决办法]
搞清楚union的原理.
[解决办法]
探讨
搞清楚union的原理.

[解决办法]
联合体是共用存储空间的。
先理解意义再使用吧。
[解决办法]
探讨

搞清楚union的原理.

[解决办法]
探讨

引用:
搞清楚union的原理.

++
联合体每个时刻,,里面的每个变量一起共用存储空间
理解共用这个存储空间的意义

[解决办法]
楼主,一样的地址,指向的值怎么可能不一样?慢慢想想就明白了。
[解决办法]
union 中的成员是共用存储空间,这一点必须了解,
int student.i=0x1420; 又是小端模式,所以存储顺序: 0x20 0x14 
然后student.ch[]是char型的 占一个字节 先后对应 0x20 0x14 十进制即; 32 20
[解决办法]
他们公用同一个存储空间。

热点排行