Autumn0923 2021-12-25 13:35 采纳率: 100%
浏览 94
已结题

vscode指针大小问题


#include<stdio.h>
int main()
{
    int *p;
    int q;
    printf("%d\n",sizeof(p));
    printf("%d",sizeof(q));
    return 0;
}

img

int 类型和指针不是应该一样大吗,为什么一个是8一个是4呢?有没有人可以解释一下这个原因

  • 写回答

1条回答 默认 最新

  • 五一编程 2021-12-25 14:11
    关注

    主要看操作系统,64位系统,这个位数指的是CPU 里面的通用寄存器的数据宽度为64位,也就是说一个地址占二进制位数是64,所以:

    sizeof(double *)==sizeof(int *)==sizeof(char *)==64/8==8

    32位系统,同理,他的一个地址占32位二进制空间,sizeof(double *)==sizeof(int *)==sizeof(char *)==32/8==4
    所以指针大小为8,int 类型为4

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月2日
  • 已采纳回答 12月25日
  • 创建了问题 12月25日