想请教下关于C语言中的字符常量问题

下列那些字符是合法的,那些是不合法的?
A、‘&' B、‘\ff' C、‘\xff' D、‘\028' E、.0 F、12.
我主要是想请问下为什么B不合法,而C是合法的??麻烦解析下!!谢谢!!

'\'是转义字符,意思就是'\'后的字面不是原来的意思,最常见的就是'\n'表示换行,明白了这个,下面就好讲解了
\x表示的是十六进制,例如\xa表示的是10,\xf,表示的是15,\xff表示的是255(15*16+15)
\o表示的是八进制,所以\028表示2*8+8=24
所以c是对的
至于B为什么不合法,因为么有\f这个转义词,转义词没有几个,照书上记住既可以了,那样你碰到这类问题就迎刃而解了
呵呵
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-07-06
完整一点的解释:

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

转义字符 意义 ASCII码值(十进制)
\a 响铃(BEL) 007
\b 退格(BS) 008
\f 换页(FF) 012
\n 换行(LF) 010
\r 回车(CR) 013
\t 水平制表(HT) 009
\v 垂直制表(VT) 011
\\ 反斜杠 092
\? 问号字符 063
\' 单引号字符 039
\" 双引号字符 034
\0 空字符(NULL) 000
\ddd 任意字符 三位八进制
\xhh 任意字符 二位十六进制

字符常量中使用单引号和反斜杠以及字符常量中使用双引号和反斜杠时,都必须使用转义字符表示,即在这些字符前加上反斜杠。

在C程序中使用转义字符\ d d d或者\ x h h可以方便灵活地表示任意字符。\ d d d为斜杠后面跟三位八进制数,该三位八进制数的值即为对应的八进制A S C I I码值。\ x后面跟两位十六进制数,该两位十六进制数为对应字符的十六进制A S C I I码值。

使用转义字符时需要注意以下问题:

1) 转义字符中只能使用小写字母,每个转义字符只能看作一个字符。

2) \v 垂直制表和\f 换页符对屏幕没有任何影响,但会影响打印机执行响应操作。

3) 在C程序中,使用不可打印字符时,通常用转义字符表示
第2个回答  2010-07-06
字符常量可以用字符本身来表示,比如‘A’就代表字母A,也可以用反斜杆+字符的ASCII码来表示,其中ASCII码又可以用八进制和十六进制两种形式表示,8进制形式:\ddd,ddd是三个8进制数字,比如'\101',就是表示字母A;16进制:\xhh,x是前缀,hh是两个16进制数字,比如‘\x41',就是表示字母A。可见C是合法的16进制表示形式,但B不是合法16进制形式(少了前缀x)。
第3个回答  2021-03-26

第4个回答  2010-07-06
书上字符那块有一个表格有固定的 要背的 为什么得去问制造C语言的人
相似回答