gpt4 book ai didi

c - 为什么不同指针的大小不同

转载 作者:行者123 更新时间:2023-11-30 18:20:04 24 4
gpt4 key购买 nike

#include <stdio.h>

#define R 10
#define C 20

int main()
{
int *p;
int *p1[R];
int *p2[R][C];
printf("%d %d %d", sizeof(*p),sizeof(*p1),sizeof(*p2));
getchar();
return 0;
}

为什么输出是:4 8 160?为什么p1的大小变成8而不是4?

最佳答案

考虑类型

  1. sizeof(*p) ==> sizeof(int)
  2. sizeof(*p1) ==> sizeof(int *)
  3. sizeof(*p2) ==> sizeof((int [20]))

注意:根据您的平台和编译器,您会得到不同的结果。

此外,众所周知,sizeof 会生成 size_t 类型的结果,建议使用 %zu 格式说明符来打印结果.

关于c - 为什么不同指针的大小不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31556285/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com