作者:周月醉 | 来源:互联网 | 2022-12-02 17:42
以下面的代码为例:
int main(){
char string[] = { 'h' , 'e', 'l', 'l', 'o' };
printf(string);
printf("\n%d", strlen(string));
}
输出将是:
hello
6
因此,从一开始我就可以看到strlen
价值偏差为1,但如果我们考虑它,它似乎并不是一个障碍.
什么时候不终止字符串会产生问题?
1> Andrew Henle..:
不在字符串中使用空终止会有什么影响?
技术上没有,因为C字符串 - 按定义 - 由空字符终止:
字符串是由第一个空字符终止并包括第一个空字符的连续字符序列.
因此,如果没有正确终止,它不是一个字符串.
如果将非字符串传递给需要字符串的代码,则将调用未定义的行为.