c语言字符串对字符数组初始化

来源:百度知道 编辑:UC知道 时间:2024/07/02 06:13:35
char s[7]="string"可不可以这样写char s[6]="string"

不可以,array bound overflow,数组越界,还要存一个'\0'.
其实碰到这种问题,你应该自己去开发环境中试一下,看看报不报错。

不可以,字符串隐含了结束符,string虽然长为6,但加上结束符就长为7字节了。虽然有时候不会报错,但还是存在隐患。

字符串的存储结束需要用"\0"来标志,所以存储string六个的字符就需要7个才能正确结束了,会报错空间不够

不行。string里面有7个字符。

这不一样
虽然是6位数
可我们s[7]是7个元素
所以 我们用到了/0来表示空字符串赋值
可以写成:char s[7]="string/0"

可以是可以,但是这会导致结束的空字符存放越界,有安全隐患。