我在下面创建了两个数组“TEST”和“arr”,都包含字符“ABCDE”。
#include <stdio.h>
#define TEST "ABCDE"
int main()
{
char arr[5];
int i;
for(i=0;i<5;i++)
{
arr[i] = i + 65;
}
printf("%s\n",arr);
printf("%zd %zd",sizeof arr,sizeof TEST);
return 0;
}
输出是
ABCDE
5 6
鉴于这两个数组都带有 5 个字符,为什么它们的大小不同?(我知道每个字符串的末尾都有一个空字符。)