永发信息网

char str[7]="string!"这样赋值有问题,为什么不对?

答案:2  悬赏:0  手机版
解决时间 2021-01-14 06:04
char str[7]="string!"这样赋值有问题,为什么不对?
最佳答案
char str[7]="string!" ; //定义了7个字符的空间,后面赋值是字符串共7+1个字符(string!\0),所以有越界现象出现。应该为:
char str[7+1]="string!"追问但是0-7就已经是八个了,这是我不理解的地方追答char str[7] ; 这里的7是字符个数,容量大小

数组下标从0开始,这样这个数组可访问的地址只能是str[0]到str[6]
str[7]就越界了 !追问但是我像这样输入 “string!”
#include
#include
int main()
{
char s[7];
int i=0;
scanf("%s",s);
printf("%s",s);
}
这样能输出,这样越界了吗?追答是的,越界了,只是你程序较小,运气较好,没有出现异常而已!
简单说,你向一个只能放1L水的瓶子中装 多于1L的水,就会溢出!只是程序不会表现的象水这么明显追问如果输入“string”那么这样 s[7]里面存放的是什么?追答char s[7];

scanf("%s",s); 输入string,则s中存的是string,s[0]='s' s[1]='t' s[2]='r'....s[5]='g' s[6]='\0'
没有s[7]!!
全部回答
char str[7]="string!";数组越界了。字符串系统后面默认添加‘\0’,char str[7]="string!\0"。以表示字符串结束。数组最少需要8个元素。char str[8]="string!"追问数组不是从0开始存的吗? 0-7就是八个了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
家养多年的中华草龟因可能吃了有咸味的猪肉,
研究和开发费用,到底哪个可以资本化
小米商场小米6怎么售罄了
奶糖每千克十五元水果糖每千克十一元棉花糖每
木家具家具拆卸后在组装还有味道吗?
钢筋环氧植筋胶能焊接吗,如果可以焊接,怎么
单选题下列有关物质的应用中,利用原理为化学
雪花让大地变成了什么?
小米wifi放大器2和pro有什么区别
能被选入宫的宫女,如何当成妃子?
星月菩提是不是菩提树的种子
莱娅美私?
请问下中培教育值得去参加吗?
请问投给公司的简历,公司的人会去调查吗?
河南春宾电线好不好
推荐资讯
华尔道夫是几星级?
给“唐宋名篇音乐朗诵会”选词《雨霖铃》写一
家用合资车那款好
我看你之前在问 ivvi SS1-01这个型号的ROOT方
带“翔”字的诗句有哪些?
我有虎牙,怎么办,去掉,还是不去掉
阿旺麻辣烫这个地址在什么地方,我要处理点事
沧州哪有成人英语学校
若n的十进制表示为99…9(共20位9),则n 3
五时四十分的成语
单选题世界政治格局多极化出现的根源是A.世界
皮秒激光是选用755nm还是1064nm
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?