char*s=“\ta\018bc“中为什么要看\01为八进制,为什么不能s==\“\0\“结束循环呢?

\XXX表示斜扛后面的1到3位为八进制表示的
字符。 "\018"含2个字符,一个是’\01’,一个
字’8’。注意:018不是八进制,八进制没有字
符8。 "\08"含2个字符,一个是’\0’,一个
字’8’。 "\101"含一个字符,即字符’A’

规定是这样的,如果 \ 后面是0,后面是1~377
(注意是有1~7组成的数),都是八进制数,
而 \0 才是字符串结束符,如果按你那么说
\018 看成是 \0,那么怎么表示八进制数呢?
任何八进制数都看成是 \0 了。 打个比方,为
什么12,你不看成是1而看成是12,因为后面
还有数字 “012xy\08s34g4y2” 因为\0后面的是
8,也就不是八进制数了,因此这里看成’\0’,
也就是s[i]==0,循环结束

你可能感兴趣的:(笔记,#,C语言小白白,c语言)