<分区>
#include <stdio.h>
int main(void)
{
char a[] = "Love you!";
char *b = "Love you!";
printf("%s\n", a);
printf("Length: %d\n", sizeof(a));
printf("%s\n", b);
printf("Length: %d\n", sizeof(b));
return 0;
}
看上面的代码。
这是输出:
Love you!
Length: 10
Love you!
Length: 8
我理解 char a[] = "Love you!" 它有 10 个字符,末尾有一个不可见的 '\0'。
我没有得到的是 char *b 的长度只有 8,而其中的字符可以完美打印。
C中sizeof计算char a[]和char *a有什么区别?