#include<stdio.h> void main() {char p[]={'a','b','c'},q[10]={'a','b','c'};

printf("%d%d\n",strlen(p),sstrlen(q));为什么我在资料上看的答案是3.3,而我在用VC上运行的时候结果是7.3;请各位师兄师姐们教教小... printf("%d%d\n",strlen(p),sstrlen(q));为什么我在资料上看的答案是3.3,而我在用VC上运行的时候结果是7.3;请各位师兄师姐们教教小弟,小弟在此拜谢了。。。。。。。。。。 展开
 我来答
terranlong
推荐于2018-03-20 · TA获得超过7293个赞
知道大有可为答主
回答量:2660
采纳率:0%
帮助的人:3935万
展开全部
我有运行的结果是15 3,知道为什么吗?
因为strlen是用来计算字符串长度的,也就是说读到 '\0' 才计算长度,由于 p[] 的长度是未知的,因此strlen出来的结果也是未知的,而 q[] 在最后自动帮你补了个 '\0',因此读出来是3
a652570001
2011-09-15 · TA获得超过129个赞
知道答主
回答量:153
采纳率:0%
帮助的人:170万
展开全部
char p[]={'a','b','c'}这个数组的大小是随机的,p为字符数组的时候碰到随机的/0结束。大小不是唯一的。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jasonwyatking
2011-09-15 · TA获得超过357个赞
知道小有建树答主
回答量:288
采纳率:0%
帮助的人:244万
展开全部
(gdb) x/32b &p
0x7fffc6eef5d0: 0x61 0x62 0x63 0xc6 0xff 0x7f 0x00 0x00
我在linux上运行结果是6,gdb查看栈内容发现 莫名其妙的出现了:0xc6 0xff 0x7f
估计,一,和操作系统有关,二,和编译器有关。
如果是考试,建议你按照资料上的答案来考,毕竟,批卷子的人的答案是死的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
流云残卷
2011-09-18
知道答主
回答量:37
采纳率:0%
帮助的人:13.4万
展开全部
你这个sstrlen(q)????不明白你这个3是怎么出来的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式