有人可以解释一下为什么不能'\0'在给定数组中放置一个字符:
char a[]={'r','b'};
a[2]='\0';
Run Code Online (Sandbox Code Playgroud)
上面的代码不应该在第三个插槽中放置一个空字符,因此将字符数组a转换为字符串.
您正在写入数组边界:当您使用两个字符初始化数组时,最后一个有效索引1不是2.
您应该使用三个项初始化数组,如下所示:
char a[] = {'r', 'b', '\0'};
Run Code Online (Sandbox Code Playgroud)
你也可以使用这个版本:
char a[] = "rb";
Run Code Online (Sandbox Code Playgroud)
这将为您提供一个可写数组,其中包含一个以零结尾的字符串.