在C中初始化一个具有确切长度的字符数组?

use*_*410 1 c

char ch[2];
ch[0] = 'h';
ch[1] = '\0';
Run Code Online (Sandbox Code Playgroud)

或者我可以这样做

char ch[1];
ch[0] = 'h';
Run Code Online (Sandbox Code Playgroud)

其中'\ 0'已经隐含了吗?

我这样做的原因是因为我的程序中有一个循环,我将不断更改此字符并将其连接到更长的字符串.

das*_*ght 5

分配只是ch[0]不会为此分配零ch[1].您可以在一行中使用字符串文字初始化数组中的两个字符,如下所示:

char ch[2] = "h";
Run Code Online (Sandbox Code Playgroud)

这将使'h'ch[0],且终止零到ch[1].