C++的字符数组问题

charsp[]="\x69\082\n";cout<<strlen(sp);输出的结果是1,但为什么?字符数组只占一个字节吗?... char sp[]="\x69\082\n";
cout<<strlen(sp);
输出的结果是1,但为什么?字符数组只占一个字节吗?
展开
 我来答
lin848497337
2009-06-29 · TA获得超过101个赞
知道答主
回答量:157
采纳率:0%
帮助的人:84万
展开全部
你哪字符串里有个\0,你注意到没,是个结束标志,也就是说你实际在数组里只存了一个字符 ,还有strlen这个函数是计算数组元素个数的和占字节数没关系,要算字节数要用sizeof()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dingtang2008
2009-06-29 · TA获得超过116个赞
知道答主
回答量:51
采纳率:0%
帮助的人:32.1万
展开全部
首先,strlen()的判断是读取一输入流,判断当前字符是否与结束标志“\0”相等,\x69表示转义字符,68所对应的ascii码,到\0就不读了,所以为1
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
silvernii
2009-06-29 · TA获得超过3638个赞
知道大有可为答主
回答量:1667
采纳率:0%
帮助的人:1626万
展开全部
如dingtang2008讲的那样
\082很有迷惑性,如果8换成0-7中间一个数字的话,譬如\072,那就是表示一个8进制数了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vbtraz
2009-06-29 · TA获得超过5532个赞
知道大有可为答主
回答量:4152
采纳率:0%
帮助的人:4445万
展开全部
\082 这是什么意思?

字符串里的转义接数字只有两种形式,要么 \x接16进制的两个字,要么\接8进制的3个字
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式