谁能解释一下为什么不能在给定数组中放置一个'\0'
字符:
char a[]={'r','b'};
a[2]='\0';
上面的代码不应该在第三个位置放置一个空字符,从而将字符数组 a 转换为字符串。
最佳答案
您正在写越过数组边界:当您初始化一个包含两个字符的数组时,最后一个有效索引是 1
,而不是 2
。
你应该用三个项目初始化你的数组,如下所示:
char a[] = {'r', 'b', '\0'};
你也可以使用这个版本:
char a[] = "rb";
这将为您提供一个可写 数组,其中包含一个以零结尾的字符串。
关于c - C 中的数组初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10661927/