C语言中,这道题的输出结果为什么是70呢?

 我来答
weeweebt
2016-01-09
知道答主
回答量:19
采纳率:0%
帮助的人:10.6万
展开全部
x[] = "STRING" <==> x[] = {'S', 'T', 'R', 'I', 'N', 'G', '\0'};
所以sizeof (x) == 7
因为strlen 以判断到 '\0'(也就是0)作为字符串结尾标识,
所以x[0]=0,导致strlen在判断x[0]时就认为到字符串末尾了,因此返回0
%d%d 打印出来就是 70
阿尔迈凡
2016-01-09 · TA获得超过8460个赞
知道大有可为答主
回答量:5744
采纳率:14%
帮助的人:1965万
展开全部
sizeof是求变量战胜内存大小的
char x[]="STRING"
内存中是
'S' 'T' 'R' 'I' 'N' 'G' 0
所以大小为7

而strlen是求以0结尾的字符串长度的
x[0]=0所以该字符串的长度就是0了
所以输出7 0
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kaixingui2012
2016-01-09 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6226万
展开全部
char x[]="string" ; //字符串string+结束符\0共7个字符,存储到数组x中,所以x的空间大小为7,即:sizeof(x)=7
x[0]=0; //这句导致strlen(x)结果为0,\0是字符串结束符,数值上看就是0,strlen(x)从x地址开始统计,遇\0结束统计,所以,长度结果为0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
刘子弹天下无敌
2016-01-09
知道答主
回答量:22
采纳率:0%
帮助的人:9.7万
展开全部
7是sizeof(x)的值,x中放了七个char型数据每个大小为1
0是strlen(x)的值,strlen函数是求字符串的有效长度,简单来说就是找\0或0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式