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

最左边一列为内存地址,(指针不同于一般变量,存的是变量的地址,在同一架构下地址长度都是相同的(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位系统指针变量放在中间栏,要字节序转换后,才是左边栏的地址。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容