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
我的问题:为什么两种输出尺寸不同?
答案 0 :(得分:2)
sizeof(str1)
是char指针的大小,而sizeof(str2)
给出的数组大小为字符串长度(pupupupu
)+ 1
请阅读我的回答,它不完全相同,但对您有所帮助:What does sizeof(&arr) returns?