C中指针的大小

NAV*_*EEN -15 c pointers 32bit-64bit

  1. 使用32位编译器的32位机器中C指针的大小是多少?

  2. 在使用32位编译器的64位机器中,C中指针的大小是多少?

tro*_*foe 6

如果64位操作系统能够运行32位应用程序(大多数是),则该机器不相关; 这取决于您创建的可执行文件的类型(-m32等).

您可以通过编译并运行以下代码来自行回答:

#include <stdio.h>
int main(int argc, const char **argv)
{
    printf("Pointer size is %u bytes\n", (unsigned)sizeof(void *));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

答案是4(32位).

  • @ user694733:不,trojanfoe回答正确.仔细阅读问题.他问了两个非常具体的问题.这两个问题归结为最后一位,即"使用32位编译器",因此,答案将是32位. (2认同)