我的c++新手问题

来源:百度知道 编辑:UC知道 时间:2024/06/22 03:49:26
#include<iostream.h>
void main()
{
union
{ unsigned int i;
short int c[2];
}r;
r.i=0x12345678;
cout<<hex<<r.c[0]<<","<<hex<<r.c[1]<<endl;
}

//题解说:共用体变量r的长度为4,在赋值后,低位2个字节为5678,高位两个字节为1234,输出:5678,1234
//请问,为什么不是输出1234,5678?
//这个数据存储的过程是什么样子的啊?

数据存储我们的系统大部分都是从低到高存放

比如你这个union如果起始地址为2000


2000 存放 78
2001 存放 56
2002 存放 34
2003 存放 12

而你的数组c
第一个元素c[0]用了低二位,就是2000和2001
所以输出地时候输出的是5678

有问题hi我,pur_e

你上网查下little endian就知道了