为什么在64位计算机上指针大小为4字节?

时间:2018-10-11 10:38:56

标签: c byte 64-bit

编译器说我的指针是4字节,但是我的计算机是64位操作系统。 它不应该说是8个字节而不是4个字节吗? 是什么引起了这个问题? IDE正在这样做吗?也许是编译器?

int *p;
printf("%d", sizeof(p));


compiler says: 4

2 个答案:

答案 0 :(得分:3)

您的编译器和编译器选项定义了实际的目标。操作系统无关紧要,因为您可以在32位计算机上编译64位代码(您将无法执行),而在64位计算机上编译32位代码。

如果指针的sizeof为4字节,则表示您编译32位代码。在许多64个操作系统上,您可以执行32位代码。

答案 1 :(得分:1)

我一直在寻找相同的答案,但我发现我必须改变 // Build-> Configuration Manager->面向x64的活动解决方案平台// 将其设置为8字节的值。 希望这对您使用Visual Studio Community 2019有帮助。