-2
char *str1 = "pupupupu";
char str2[] = "pupupupu";

printf("%s\t%d\n", str1, (int)sizeof(str1));
printf("%s\t%d\n", str2, (int)sizeof(str2));

输出:

pupupupu    8
pupupupu    9

我的问题:为什么两个输出大小不同?

4

1 回答 1

2

sizeof(str1)是 char 指针的大小,其中 assizeof(str2)给出了字符串长度 ( pupupupu) + 1的数组大小

阅读我的这个答案,它并不完全相同,但对您有很大帮助:sizeof(&arr) 返回什么?

于 2013-05-17T12:58:32.920 回答