c语言 \0的问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 00:02:29
\0是加在字符串末尾表结束的符号,如果一个char数组有5个空位 都被A填满不就没有\0的位置了吗?

是啊,如果一个char数组有5个空位 都被A填满就没有\0的位置了

字符数组,可以没有\0的,而字符串必须有,这就是字符数组跟字符串的区别。

是这样的。所以如果你想用字符数组存放字符串的话,就必须定义一个比字符串长度大一的数组。

对,如果你用字符串来作为输入值,会越界。有的编译器不会报错,但输出时很可能出问题。

所以你必须给字符串多留出一位来放\0,这是必须的。谨记谨记。
vijos上我有好多题都是没有注意到这个问题出错的

数组不存在这个问题..这是因为你已经知道这个数组的长度..自然就知道最后一个字符的位置..
\0是针对字符串的..计算机读取字符串的时候读到\0就知道这个字符串结束了..
如果你想使用字符数组和字符串之间进行操作或者转化的话在数组最后一个单元格里面就要加\0

按字符输入没有问题,按字符串输入必须预留一个空位,否则会越界