在C++中'\018'是一个字符吗

来源:百度知道 编辑:UC知道 时间:2024/09/25 07:28:55

不是的。
C++中转义字符有三种表示方法:
1 在\后面接一个特定的字母,如\n,\t等。表示对应的意义。
2 在\后面接x,然后接两位16进制数字,不区分大小写。如'\x12', '\xAb'等。表示对应两位16进制的ascii码值。
3 在\后面接三位8进制数值,如'\123', '\011'等。表示三位8进制数表示的ascii码值。

与'\018'最为接近的情况是第三种,不过第三种要求是8进制数,所以合法的字符只有0~7,8并不是合法的8进制字符。所以作为单个字符\018的写法是错误的。如果出现在字符串中,会被当做'\01'(ascii码值为1)和'8'两个字符来处理。

这个是错误的表达式。
在C / C++ 当中,''表示一个字符。
对于非可打印、可见的那些字符,可以用十六进制或者八进制表示。
\x是十六进制转换符,而\后面直接跟数字是八进制转换,数字可以是1到3个,
但必须是合法的单字符的8进制数字序列。

你这个\018在识别的时候,01被识别,但是8是非法的八进制数字,
所以编译器认为 \01是ASCII为1的字符,剩下的8是非常字符,编译不通过。

是一个控制字符。
具体可以查一下ACSII表