char数组长度为C.

Esp*_*sso 5 c

在C中,您必须声明数组的长度:

int myArray[100];
Run Code Online (Sandbox Code Playgroud)

但是当你处理chars和字符串时,长度可以留空:

char myString[] = "Hello, World!";
Run Code Online (Sandbox Code Playgroud)

编译器是否通过查看字符串为您生成长度?

Kar*_*ath 10

是的,它的长度包括终止'\0'.


Oli*_*rth 10

这不是唯一的char.你可以这样做,例如:

int myNumbers[] = { 5, 10, 15, 20, 42 };
Run Code Online (Sandbox Code Playgroud)

这相当于写作:

int myNumbers[5] = { 5, 10, 15, 20, 42 };
Run Code Online (Sandbox Code Playgroud)

char从字符串文字初始化数组是一种特殊情况.


Ree*_*sey 5

编译器是否通过查看字符串为您生成长度?

是的,这正是它的原因.编译器会看到常量值,并且可以填充长度,因此您不必这样做.