Apple M2平台下内存地址为何显示9位十六进制数而非8位?
为什么Apple M2设备上打印的变量地址是9位十六进制数?
- Apple M2是64位架构的处理器,Xcode默认会将你的C++程序编译为64位可执行文件,程序中的内存地址是64位长度(对应16位十六进制数)。
- 你看到的
0x16fdff260是64位地址的有效部分,前导的多个0被cout自动省略了。完整的64位地址应该类似0x000000016fdff260,去掉前导零后就变成了你看到的9位十六进制数(0x后面的9个字符)。 - 32位地址的逻辑只适用于32位程序或32位架构设备,M2属于64位系统,运行的是64位程序,所以地址长度是64位,输出时省略前导零就会出现超过8位的情况。
内容的提问来源于stack exchange,提问作者Harry
相关产品推荐
相关产品推荐

