c语言 以下是字符型常量的是

来源:百度知道 编辑:UC知道 时间:2024/06/06 10:57:04
A '\x13'
B '\081'
C '65'
D "n"
答案是A
说的是有\的是转义字符那么A又是转的什么意
是不是随便一个字符前面加上\就是个转义字符???
为什么C不对 书上解释是“‘65’单引号括起来的不是个字符而是个十进制数字 到底什么是字符??!!!!!!!
为什么有的数字用单引号括起来是字符常量(比如说A)为什么有的不行比如说C

B.本义是八进制转义序列,但是却出现了一个非八进制数字8,错误

C.不符合字符常量的定义,错误

D.双引号表示这是一个字符串常量,而不是一个字符常量。

A.这是一个十六进制转义序列,正确。

****************************************

并不是说单引号括起来的数字就都不是字符常量,而是不能有多于1个字符用单引号括起来,否则,就成了一个多字节字符,就不是一般意义上的字符常量了,例如:

'a'
'5'
'6'
都是字符常量,但是像下面这样的就不算是严格意义上的字符常量了:
'65'
'ab'
'22236'

在C语言中,字符型常量是由单引号括起来的单个字符,例如'a'、'A'、'1'等等。
也有特使情况的,例如'\n'、'\t'等,这些字符型常量叫做转义字符,顾名思义,这种字符会转换成具体的内容,而不是单引号里的字符,上述例子中,'\n'是换行符,'\t'是水平制表符,这种字符由反斜杠“\”,和一个字符或一个八进制或十六进制数组成。

A全是字符常量
A中以x开头 为16进制 '21'
B中以0开头 为8进制 ‘\081’ 中出现了8 否定之
C‘65’ 不是字符
D是字符串

A是ASC 码值为X13的字符,可以去查ASC码表。
c要改成'\65'才是字符。