C 字符串以 null 结尾,这意味着在字符数组中,索引 strlen()
处的字符是一个所有位都设置为 0 的字节。我看到代码中,使用整数 0
代替 '\0'
。但是由于 sizeof(int) > sizeof(char)
,这实际上可能会超出为数组分配的空间 - 我错了吗?或者在这种情况下,编译器是否隐式地将 int
转换为 char
?
最佳答案
当将值 0
存储在 char
数组中时,int 将隐式转换为 char。
实际上,'\0'
的类型是int
(与预期相反),所以somechararray[x]=0
和 somechararray[x]='\0'
在语义上是等价的。
就我个人而言,我更喜欢使用 '\0'
,以便更清楚地表明我正在处理一个字符串。
关于c - 用 0 而不是 '\0' 终止 c 字符串是错误的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2257573/