c语言的题目,求详细解释啊,在线等!

main(){charstr[3][6]={"china","japan","korea"};str[1][5]=''printf("%s\n",str[1]);}求答案... main()
{char str[3][6]={"china","japan","korea"};
str[1][5]=' '
printf("%s\n",str[1]);
} 求答案和解释!
展开
 我来答
charleszhangji
2010-08-25 · TA获得超过4554个赞
知道小有建树答主
回答量:887
采纳率:0%
帮助的人:939万
展开全部
答案是 japan korea

理由:
str[3][6]是一个二维数组,可以看成是 以str[6]为元素的数组,大小为3。
str[1] 就是 字符串“japan”
str[1][5]就是"japan"的第六个字符,也就是“\0”,即字符串结束符
赋值语句把这个位置的字符改成了空格‘ ’ ,所以当读取字符串str[1]的时候,计算机一直要读到结束符“\0”为止,因此会一直把下一个字符串的内容也读出来。

在内存中存放的顺序就是
原来是: china\0
japan\0
korea\0
赋值以后:china\0
japan
korea\0
输出str[1]的时候从j开始读取内容一直到\0,因此得出结果
japan korea
bnujwch
2010-08-25 · TA获得超过1431个赞
知道小有建树答主
回答量:697
采纳率:100%
帮助的人:597万
展开全部
str[3][6]={"china","japan","korea"};
str如下
0 1 2 3 4 5
0 c h i n a \0
1 j a p a n \0
2 k o r e a \0

str[1][5]的值本来是'\0',是一个字符串的结尾的标志,被你修改成空格(空格不是'\0'),所以输出str[1]就是japan这一行的时候,函数找不到字符串结尾标志,就一直读下去,直到找到korea后面的'\0',输出结束
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zrj_bd
2010-08-25 · TA获得超过1870个赞
知道小有建树答主
回答量:647
采纳率:100%
帮助的人:1089万
展开全部
输出内容为:japan korea
解释:原来str[1][5]的值为'\0',也就是字符串的结束符。加上这个语句str[1][5]=' ',就把为'\0'改成了' ',这样输出的就是japan korea了。如果没有str[1][5]=' '这个语句,则printf("%s\n",str[1]);输出的内容为:japan
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友bdfb4db7d
2010-08-25 · 超过16用户采纳过TA的回答
知道答主
回答量:48
采纳率:0%
帮助的人:39.2万
展开全部
楼上的解析得太对了,太详细了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式