小编Moh*_*hil的帖子

为什么字符串数组中的"Hello"大小为4?

有问题的代码:

#include <stdio.h>

int main(void) {

 char *a[10] = {"hi", "Hello", "how"};
 printf("%d\n", sizeof(a));

 printf("%s\n%s\n%s\n", a[0],a[1],a[2]);
 printf("%d\n%d\n%d\n", sizeof(a[0]),sizeof(a[1]),sizeof(a[2]));

 printf("%d", sizeof("Hello"));
 return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

40
hi
Hello
how
4
4
4
6
Run Code Online (Sandbox Code Playgroud)

我不知道为什么会发生这种情况,我也查找了sizeof关于cppreference的参考资料.仍然不知道为什么它为"Hello"返回4时应该需要6来存储它.

c string pointers sizeof

1
推荐指数
1
解决办法
908
查看次数

标签 统计

c ×1

pointers ×1

sizeof ×1

string ×1