C语言:设有说明语句:char a='\72';则变量a()

A) 包含1个字符
B)包含2个字符
C)包含3个字符
D)说明不合法
问题:答案是A选项,可是我怎么觉得应该是不合法的呢?‘’不是表示字符型变量只能存放单个字符吗?

\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个回答  2011-01-29
A是正确的。
'\'是转义字符,'\72'表示ASCII码里的一个字符,具体是什么查查ASCII表吧
第2个回答  2011-01-29
\72表示一个转义字符,表示冒号,单引号里面是可以放多个字符的,只不过编译警告,会输出最后一个字符
第3个回答  2011-01-29
\是转译字符,\72表示是8进制数。 确实是一个字符啊
第4个回答  2011-01-29
\72是八进制数,转化为十进制数为58,再查ASCII码表对应
相似回答