Moh*_*hil 1 c string pointers sizeof
有问题的代码:
#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来存储它.
| 归档时间: |
|
| 查看次数: |
908 次 |
| 最近记录: |