C/C++语言中的反斜杠!!!

来源:互联网 发布:生化危机启示录2 知乎 编辑:程序博客网 时间:2024/04/30 13:13

今天碰到一个某公司的笔试题(被鄙视了): 

char s[] = "\\141\141abc\t";cout << s << endl;cout << strlen(s) << endl;//请问输出结果?
答案:

\141aabc

9

(如果你是大牛 一看就知道答案 下面的东西就别看了 , 就放小弟一马,别鄙视我了)

前两个 字符大家比较熟悉,肯定是一个 \ ,后面的141 是三个字符 , 但是到了 \141 我就烦糊涂了, 到底是几个字符?其实

\141 是一个字符 a ,为什么呢?因为 \141 是一种用八进制数字表示字符的形式,\o \oo \ooo 这三种形式,当然 o 必须是正确的八进制数(0~7)。

所以我们如果这样改一下 s :

s[] = "\\141\411abc\t";

那么结果是 \141!1abc , 因为 \41 是 ! 字符  

还有一个问题,strlen() 函数是不计入 \0 的。。  

 

原创粉丝点击