哪位大神详细解释下为什么下列代码运行结果会这样?

main(){chararr[2][4];strcpy(arr,“abc”);strcpy(arr[1],“ABC”);printf(“%s\n”,arr);}结果是ab... main()
{ char arr[2][4];

strcpy(arr,“abc”);strcpy(arr[1],“ABC”);

printf(“%s\n”,arr);}

结果是abc
展开
 我来答
baihuandu
2012-10-14
知道答主
回答量:14
采纳率:0%
帮助的人:13.9万
展开全部


看上面图片,程序运行到printf时,数组arr中的名项的值如上图所示;

打印arr的话,会从数组的头部开始[0][0]开始向后一个char一个char的打印,直到遇到“字符串”结束标志'\0' ,也就是0,所以会打印出 abc.


希望你明白了!

云创
2023-07-25 广告
价格只是购买产品或服务过程中的一项指标,如果单纯只比较价格,其实考虑并不是那么周到。价格、质量、服务、口碑、是否合适自己的情况等都需要一起考虑。以上回答如果还觉得不够详细,可以来咨询下北京磐安公司。北京磐安公司是一家专业从事高新软件的技术公... 点击进入详情页
本回答由云创提供
Mymillet
2012-10-19 · TA获得超过201个赞
知道小有建树答主
回答量:394
采纳率:0%
帮助的人:172万
展开全部
strcpy(arr,“abc”)这个等效于strcpy(arr[0],"abc")

最后arr=("abc","ABC")
打印数组默认打印第一个
全部输出请分开打印,或者用循环控制打印
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-10-10
展开全部
怎么说呢,我理解吧,简单说就是数组名为首地址,你在printf里面放的是数组名,所以输出abc,
printf(“%s\n”,arr);
printf(“%s\n”,arr[0]);
printf(“%s\n”,arr[0,0]);
输入结果应该都是一样的吧。

(说的很简单,不是很严格,仅供参考了。)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式