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

C语言:设有说明语句:char a='72';则变量a()
A) 包含1个字符
B)包含2个字符
C)包含3个字符
D)说明不合法
答案是A选项,可是我怎么觉得应该是不合法的呢?‘’不是表示字符型变量只能存放单个字符吗?
lorrylou 1年前 已收到1个回答 举报

zhoufan62 幼苗

共回答了23个问题采纳率:91.3% 举报

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年前

9
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.115 s. - webmaster@yulucn.com