下面程序段的运行结果是(D)。 char c[ ]="\tv\\\0will\n";

下面程序段的运行结果是(D)。charc[]="\tv\\\0will\n";下面程序段的运行结果是(D)。charc[]="\tv\\\0will\n";printf(... 下面程序段的运行结果是(D)。
char c[ ]="\tv\\\0will\n";下面程序段的运行结果是(D)。
char c[ ]="\tv\\\0will\n";
printf("%d", sizeof(c));
A) 14
B) 3
C) 9
D) 10
为什么是10,请求指教。
是答案错了吗,我自己觉得是5
展开
 我来答
百度网友69d3db5
推荐于2017-10-12 · TA获得超过141个赞
知道小有建树答主
回答量:87
采纳率:0%
帮助的人:101万
展开全部
如果使用strlen, 结果是5, 用sizeof,就是10.
strlen的参数是char *类型,它计算字符串的长度直到遇到\0为止,且长度不包含\0。当用一个字符数组做位strlen参数时,数组名会隐式的转化为char *.
sizeof是计算的变量,类型所占空间的大小,当然包含\0.
更多追问追答
追问
但是不是遇上第一个\0就会停止吗
追答
sizeof 不会遇到\0停止, strlen会. sizeof检查到这是字符数组类型, 会取其内存大小.
比如 char p[10] = "a"; sizeof(p)就是11个字符.
White_MouseYBZ
2017-10-11 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6292万
展开全部
答案正确,10。\t v \\ \0 w i l l \n \0——别忘了最后的\0,它是系统自动加上的,你数一下是几?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式