1.

小端机器的数据高位字节放在高地址,低位字节放在低地址。x86结构为小端模式。
pshort占用2个字节,在内存中的16进制为0x01 0x02,对应的16进制数为0x0201。
pshort + 2指向array数组的下标为4的元素,占用2个字节,在内存中的16进制为0x05 0x06,对应的16进制数为0x0605。
pint64的int64类型不确定,但根据名字可以看出占用8个字节,对应的16进制形式为0x807060504030201。
pint + 2占用4个字节,指向的array数组的下标为8的元素,8-11个元素没有指定数组的初始化值,默认为0,因此*(pint + 2)对应的16进制为0。
小端机器的数据高位字节放在高地址,低位字节放在低地址。
char array[12] = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08};
1,char一字节,直观呈现的结果为:0x08-07-06-05-04-03-02-01(从后到前下标为0-7);
2,short两字节,直观呈现 的结果 为: 0x0807-0605-0403-0201 (从后到前 下标 为0-3) :
*pshort从0开始,所以0x201;
*(pshort+2)从2开始,所以0x605;
3,int64八字节,直观呈现 的结果 为 0x0807060504030201 (从后到前 下标 为0) :
*pint64从0开始,所以0x807060504030201;
4,int四字节,直观呈现为0x08070605-04030201(从后到前 下标 为0-1) :
*(pint+2))从2开始,但是最多只到下标1,后面位置默认为0.
2.






本文探讨了小端机器中数据的存储方式,详细解释了不同数据类型的字节顺序。通过实例展示了char、short、int64和int在内存中的布局,并分析了指针加偏移量后的十六进制表示。内容包括数据高位和低位字节的位置,以及未初始化的默认值为0的情况。
1万+

被折叠的 条评论
为什么被折叠?



