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"
虽然是6位数
可我们s[7]是7个元素
所以 我们用到了/0来表示空字符串赋值
可以写成:char s[7]="string/0"
第5个回答 2008-09-25
可以是可以,但是这会导致结束的空字符存放越界,有安全隐患。