C++问题,来帮个忙,很简单。

char*s="\ta\018bc";for(;*s!='\0';s++)cout<<'*';和char*s="\x69\082\n";for(;*s!='\0';s++... char *s="\ta\018bc"; for(;*s!='\0';s++) cout<<'*';

char *s="\x69\082\n"; for(;*s!='\0';s++) cout<<'*';

请问这两个语句句区别在哪里,他们的\0表示的意义不一样吗,前面一个输出
了6个*,后一个只输出了一个*。详细回答谢谢
展开
 我来答
游戏追求者
2010-06-17
知道答主
回答量:12
采纳率:0%
帮助的人:0
展开全部
首先,你要明白八进制,用八进制表达时,你不能少了最前的那个0。否则计算机会通通当成10进制。C,C++规定,一个数如果要指明它采用八进制,必须在它前面加上一个0,如:123是十进制,但0123则表示采用八进制。这就是八进制数在C、C++中的表达方法。不过,有一个地方使用八进制数时,却不能使用加0,那就是我们前面学的用于表达字符的“转义符”表达法。

我们学过用一个转义符'\'加上一个特殊字母来表示某个字符的方法,如:'\n'表示换行(line),而'\t'表示Tab字符,'\''则表示单引号。今天我们又学习了一种使用转义符的方法:转义符'\'后面接一个八进制数,用于表示ASCII码等于该值的字符。

比如,问号字符(?)的ASCII值是63,那么我们可以把它转换为八进值:77,然后用 '\77'来表示'?'。由于是八进制,所以本应写成 '\077',但因为C,C++规定不允许使用斜杠加10进制数来表示字符,所以这里的0可以不写。

如题中:
第一个s中的字符 '\t' 'a' '\01' '8' 'b' 'c'
第二个s中的字符 ‘\x’'69' '\0' '8' '2' '\n'
其中,\01 是八进制的转义符, 去掉0也是一样的
百度网友ff90b2e
2010-06-17 · TA获得超过818个赞
知道小有建树答主
回答量:537
采纳率:0%
帮助的人:402万
展开全部
'\0'代表字符串结尾,
\0什么也不代表,只代表0的转义,就像\n代表换行一样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wang433
2010-06-17 · TA获得超过969个赞
知道小有建树答主
回答量:320
采纳率:0%
帮助的人:151万
展开全部
其实你用单步跟踪就可以知道原因了。
第一个中字符为\t,a,\01,8,b,c共6个字符,循环体执行6次
第二个中字符为\x69(16进制),\0,8,2,\n,注意到\0表示字符串结束,所以,中做一次循环体。(\08不符合8进制要求,所以8不包括在转义符中)
以上分析没有测试,你可以用单步跟踪看一下就清楚了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qqaben
2010-06-17 · TA获得超过575个赞
知道小有建树答主
回答量:134
采纳率:100%
帮助的人:143万
展开全部
具体原因是这样的。第一个字符串里的 \01 被解释成了 8 进制,即ASCII为 1,第二个字符串 \ 后面跟的是08, 8不可能是8进制,所以就组合成了\0 和 8。

可以参考下两个字符串在内存中的值。
第一个字符串:0x09 0x61 0x01 0x38 0x62 0x63
第二个字符串:0x69 0x00 0x38 0x32 0x0a

清楚了吧。^_^
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
matlab13
2010-06-17 · TA获得超过1596个赞
知道小有建树答主
回答量:727
采纳率:0%
帮助的人:822万
展开全部
第一个字符串的字符分别为:'\t','a','\01','8','b','c'
第二个字符串的字符分别为:'\x69','\0','8','2','\n'
这里要理解的是转义字符:\x表示十六进制数,\0后面的数如果小于8则表示八进制数,否则就是\0,第一个字符串\01表示八进制字符1,第二个字符串\0之后是8,所以不可能是八进制,表示字符串结束符\0,所以之后的不输出

我把两个字符串都输出了:
a8bc
i
Press any key to continue
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式