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
我的问题:为什么两个输出大小不同?
sizeof(str1)
是 char 指针的大小,其中 assizeof(str2)
给出了字符串长度 ( pupupupu
) + 1的数组大小
阅读我的这个答案,它并不完全相同,但对您有很大帮助:sizeof(&arr) 返回什么?