C语言:设有说明语句:char a='\72';则变量a()中72为何是八进制的

如题所述

\72表示的是一个字符哦
\是转义符号,这里的72是八进制的,换成十进制为58
如果是\92那就是错误的,因为9已经超过8进制的取值范围。
1.
一般转义字符
这种转义字符,虽然在形式上由两个字符组成,但只代表一个字符。常用的一般转义字符为:
\a
\n
\t
\v
\b
\r
\f
\\
\’
\”
你可能已经发现,转义字符'\\'代表的反斜杠"\"、转义字符’\’’代表的字符"'"和转义字符'\”'代表的字符"”",其本身就是可显示字符,为什么还要对它转义呢?
这是因为它们的原有的字符形式已作它用,其中,单引号用作区分字符常量的括号,双引号用作区分字符串(下面将要介绍字符串)的括号,而反斜杠本身已用来表示转义字符的开头,因此必须对它们用转义字符重新声明。
2.
八进制转义字符
它是由反斜杠'\'和随后的1~3个八进制数字构成的字符序列。例如,'\60'、'\101'、'\141'分别表示字符'0'、'a'和'a'。因为字符'0'、'a'和'a'的ascii码的八进制值分别为60、101和141。
字符集中的所有字符都可以用八进制转义字符表示。
如果你愿意,可以在八进制数字前面加上一个0来表示八进制转义字符。
3.
十六进制转义字符
它是由反斜杠'\'和字母x(或x)及随后的1~2个十六进制数字构成的字符序列。例如,'\x30'、'\x41'、'\x61'分别表示字符'0'、'a'和'a'。因为字符'0'、'a'和'a'的ascii码的十六进制值分别为0x30、0x41和0x61。
可见,字符集中的所有字符都可以用十六进制转义字符表示
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-04-12
当要使用ASCII中不可视的控制字符时,不能直接用单引号括起的形式表示。必须采用在某些特定的字符前加反斜线"\"的方式表示。
'\ddd'
形式的转义字符代表一个字符(d表示一位十进制数,不允许出现8,9
即八进制数)
'\xhh'
形式的转义字符也代表一个字符
(h表示一位十六进制数)
这是一种规定
相似回答