首页 > 试题广场 >

以下代码的输出是什么?```cchar str[] = "h

[单选题]
以下代码的输出是什么?
char str[] = "hello";
char *p = str;
printf("%zu %zu", sizeof(str), sizeof(p));
(假设64位平台)
  • 5 8
  • 6 8
  • 6 6
  • 5 5
sizeof(str) = 6
str 是一个数组,不是指针
"hello" 占用 6 字节:'h' 'e' 'l' 'l' 'o' '\0'(结尾的 \0 也要算)
sizeof(数组名) 返回整个数组占用的总字节数

sizeof(p) = 8(64位系统)
p 是一个指针变量,不是数组
sizeof(指针变量) 返回指针本身的大小,与它指向什么无关
64位系统:指针占 8 字节
32位系统:指针占 4 字节
发表于 2026-05-12 22:02:57 回复(0)