首页 > 试题广场 >

在64位机器上分别使用-m32和-m64编译如下代码并在64

[填空题]
64位机器上分别使用-m32-m64编译如下代码并在64位机器上执行,则输出为:12
#include <stdio.h>
int main(int argc, char * argv[])
{
        void* number =  0;      printf("%d\n",sizeof(&number));
}

32位机和64位机上指针的大小,分别为4和8

发表于 2019-08-31 18:53:23 回复(0)
*number = 0;代表初始化一个空指针。
指针的类型为int。
sizeof(&number)取到的是一个int类型的指针本身。
指针大小和机器字长相同。32位的字长为4,64位的字长为8.

另附:
 sizeof(p)取到的是指针指向的数组所有内容的长度。
sizeof(*p)取到的是指针指向的数组的第一个元素的长度。
发表于 2022-03-27 15:20:23 回复(0)