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

char s[7]="string"可不可以这样写char s[6]="string"

不可以,array bound overflow,数组越界,还要存一个'\0'.
其实碰到这种问题,你应该自己去开发环境中试一下,看看报不报错。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-09-25
不可以,字符串隐含了结束符,string虽然长为6,但加上结束符就长为7字节了。虽然有时候不会报错,但还是存在隐患。
第2个回答  2008-09-25
字符串的存储结束需要用"\0"来标志,所以存储string六个的字符就需要7个才能正确结束了,会报错空间不够
第3个回答  2008-09-25
不行。string里面有7个字符。
第4个回答  2008-10-06
这不一样
虽然是6位数
可我们s[7]是7个元素
所以 我们用到了/0来表示空字符串赋值
可以写成:char s[7]="string/0"
第5个回答  2008-09-25
可以是可以,但是这会导致结束的空字符存放越界,有安全隐患。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网