内存地址|存储数据|字节序……

2017-10-18  本文已影响0人  le0nard
最左边一列为内存地址,(指针不同于一般变量,存的是变量的地址,在同一架构下地址长度都是相同的(cpu的最大寻址内存空间),所以不同类型的指针长度都一样你输出的4 4 4,说明指针长度为4字节可以记录的地址范围是0x00000000~0xFFFFFFFF,这个范围才是指针变量的值比如说一个char 1字节,可以存在0x0,也可以位于0xFFFFFFFF而和char占用1字节还是100字节无关,指针的范围只和机器字和系统有关比如你的32位系统,指针长度为4,在64位操作系统下那么就都是8了。)

中间列为内存存放内容。两个一组为一个字节(8位16进制 0x00~0xff)。

存储数据为Word时,根据硬件、应用环境、变成语言不同,会产生字节序问题。高(低)位内存地址对应高(低)位数据,高高低低或者高低高低。 举个栗子,上图(按高高低低原则)中最后两个字节。(00000114低位地址存储低位数据02)(00000115高位地址存储高位数据00)。还原成自然顺序Word类型数据后,是0002。

高级语言(比如c++)中,32位系统指针变量放在中间栏,要字节序转换后,才是左边栏的地址。

上一篇 下一篇

猜你喜欢

热点阅读