EX4.9 EX10.1 char c = '\72';八进制
本帖最后由 我爱橙 于 2022-6-10 15:25 编辑若有说明语句:char c = '\72';则变量c( ).
a. 包含1个字符 √
b. 包含2个字符
c. 包含3个字符
d. 说明不合法,c的值不确定
#include <stdio.h>
int main()
{
char c='\72';
printf("%c",c);
return 0;
}
为什么输出是:
查表0011 1010 58 3A :
0100 1000 72 48 H
char c; 声明它是一个 char ,只有 1个字符 的 内存空间
所以 不可能 包含2个字符,也不可能 包含3个字符.b和c可以排除了.
'\72' -- ,字符常量 通常 用单引号括起来,所以单引号是对的,没有疑问.
平时看到的 字符常量 有 'a','B','3','\0';'\n' ...,那么 '\72' 对不对呢
这里要记住,用反斜杠带数字,是 八进制数,八进制数 只能用到数字 0,1,2,3,4,5,6,7
如果出现 8,9 就不合法,现在 72 是 合法的.
另外,字符常量 最大占 1 个字节,数值不能超出 ASCII 码最大值.八进制数 072 显然没超出.所以 排除了 d.
答案 是 a.包含1个字符 \72 表示的是 8 进制数 72 对应的字符,8 进制 72 为 10 进制 58,
十进制 58 对应的字符就是 “:”
https://static01.imgkr.com/temp/e19506d2acd141f6bb3d08d7285d917c.png \ 后面是 8进制。
页:
[1]