数组的表示

The representation of the array

如果定义如下:

char x[] = "abcdefg";
char y[] = {'a','b','c','d','e','f','g'};

那为什么数组 x 不等于数组 y

当你手动创建数组时,你选择是否放置结束字符“\0”,但是当C编译器读取第二种创建数组的方式时,会自动添加结束字符,所以它是不同的,因为有不同的长度。

你也可以用下面的例子来测试,

#include <stdio.h>

int main(void) {
   printf("%zu\n", sizeof(x));
   printf("%zu\n", sizeof(y));
}