第五题,想不通为什么选B

 我来答
百度网友fb85f7b
2017-01-06 · TA获得超过241个赞
知道小有建树答主
回答量:106
采纳率:100%
帮助的人:75.8万
展开全部
因为strlen()函数,在统计字符串的长度时,其实相当于从下标为0的字符开始遍历,每遇到一个字符长度就加1,直到遇到空字符'\0',就认为字符串结束了。所以strlen(st)为5 ("hello"后面是一个空字符'\0')。
而声明时char st[20],所sizeof(st)为20. 故选B。

可以参考此处strlen()的说明:http://www.cplusplus.com/reference/cstring/strlen/

另外sizeof是一个运算符,不是函数。
风若远去何人留
2017-01-06 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450132
专业C/C++软件开发

向TA提问 私信TA
展开全部
字符串中 包含的字符是 hello五个字母,然后是\0
而计算strlen是到第一个\0结束
所以 长度就是hello字母个数, 为5

sizeof是数组实际空间, 定义st[20], 那么sizeof 就是20

PS 其实这个是一个错题。 后面的\t \\ \" 分别是三个字符。 于是缺少结尾的"
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友69d3db5
2017-01-06 · TA获得超过141个赞
知道小有建树答主
回答量:87
采纳率:0%
帮助的人:103万
展开全部
这题就是考察sizeof和strlen的区别.
strlen是判断字符串的长度, 直到'\0'终止, 这里就是hello 5个字符.
sizeof是考察其在内存实际占有的空间,例如sizeof(int)一般是4. 申明里面定义的char st[20], 所以sizeof(st) 就是20个字符.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式