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

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/27 18:30:01
C语言:设有说明语句:chara=''\72'';则变量a()A)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法答案是A选项,可是我怎么觉得应该是不合法的呢?‘’不是表示字符型变量只能存放单C

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

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.
可见,字符集中的所有字符都可以用十六进制转义字符表示