C语言中 字符常量我们通常这么定义:
char c1 = 'a'; //字符常量‘a’
char c2 = '\x61'; //'\x..' 十六进制字符常量 61H变为01100001B变为97D
char c3 = '\141'; //'\...'八进制字符常量 141O变为001100001最高位的0舍去变为
//01100001B=97D
char c4 = 97; //十进制数转换成字符常量
char c5 = 0x61; //十六进制数转换成字符常量 0x.. 等价于上面的c2
char c6 = 0141; //八进制数转换为字符常量 0...
printf("c1=%c,c2=%c,c3=%c.c4=%c,c5=%c,c6=%c\n", c1, c2, c3, c4, c5, c6); //输出结果都为a因为字符型常量以ASCII码,2进制形式存放 上面的都表示2进制的01100001 对应ASCII码表的a; 并且为字符形式输出
printf("c1=%d,c2=%d,c3=%d.c4=%d,c5=%d,c6=%d\n",c1,c2,c3, c4, c5, c6);//以数值形式输出 都为0110001B=97D 结果都为为97
所以在输出字符常量的值的时候我们可以用%c输出对应ASCII码表中的字符如:A ,B,C,a,b,c等等
我们也可以用十进制%d输出结果 对应输出的是ASCII码值
char的取值范围为-128~127
在这里如果我们用十进制数转换成字符常量 并且超出ASCII码表中