读书人

为啥指针占8个字节?因为是64位CPU 吗

发布时间: 2013-11-26 22:51:31 作者: rapoo

为什么指针占8个字节?因为是64位CPU 吗 ?
我在 windows vc上写的代码
char* p = NULL;
size_t sizeOfP = sizeof(p);
size_t sizeOfStarP = sizeof(*p);

sizeOfP = 4, sizeOfStarP = 1

我在 windows 上虚拟机虚拟了 macos objc写了同样的代码
sizeOfP = 8, sizeOfStarP = 1

指针大小不一样,因为我是64位 CPU 吗 ?
VC 上面不一样,是不是因为 VC 默认只能编译 32 位的程序 ?
[解决办法]
指针大小 由编译器的目标平台决定
和实际硬件情况关系不大
[解决办法]
64位cpu运行32位的程序可以运行的很好很好,而指针大小一样是4B
[解决办法]
你用32位编译器写的32位程序指针当然是32位也就是4字节的。。
如果是64位编译器64位程序,那指针就是8字节的

读书人网 >C++

热点推荐