在使用C语言时,发现'\105'和0105的输出字符一样

来源:百度知道 编辑:UC知道 时间:2024/09/24 15:22:54
还有'\x01'和0x01的输出都是一样的,请问下是不是那个'\'就可以等价于0呢

\不等价于0,\是转义字符,比如\n是换行符\t是制表符等等。同时\后面也可以是数字(八进制或十六进制),比如\012是换行符\011是制表符等,你应该知道一个字符也可以直接用它对应的ASCII码来表示,所以012也可以是换行符011也可以表示制表符。所以\105和0105代表的字符是一样的,同样也课用十六进制数来表示字符,
通常我们可以用0——255这256个十进制数来表示字符,它们所对应的八进制和十六进制也可以。
另外我们还可以用转义字符'\'来加上八进制数或十六进制数来表示规则是
\ddd 其中ddd代表1到3位八进制数
\0xhh 其中hh代表1到2位十六进制数。
所以并不是你所认为的那样0和\是等价的。
C语言中整型数据可用十进制,八进制,十六进制等来表示,123就是一个十进制数,0123就是一个八进制数,0x123就是一个十六进制数。
也就是说,十进制是直接表示的,八进制是也0开头的数字,十六进制是以0x开头的,所以问题里面的零是用于表示数字的进制的,而\是转义字符用于表示字符。引起误会的原因就是因为整型数字也可以表示字符。

我来告诉你吧!‘\x01'的’\’是转义符,也就是说输出的‘\x01'是输出的16进制的字符型,而0\x01是16进制,输出为实型数据!

转义字符是C语言中表示字符的一种特殊形式。通常使用转义字符表示ASCII码字符集中不可打印的控制字符和特定功能的字符,如用于表示字符常量的单撇号( '),用于表示字符串常量的双撇号( ")和反斜杠( \)等。转义字符用反斜杠\后面跟一个字符或一个八进制或十六进制数表示。

转义字符 意义 ASCII码值(十进制)
\a 响铃(BEL) 007
\b 退格(BS) 008
\f 换页(FF) 012
\n 换行(LF) 010
\r 回车(CR) 013
\t 水