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码表中的值0~127那么会输出什么
如这里我们char c3 =130; printf("%d\n",c3);会输出什么呢?
int main()
{
char c1, c2, c3;
c

本文探讨了C语言中字符常量的定义和表示方式,包括十进制、八进制和十六进制。当字符常量超过ASCII码表的范围(0-127)时,其在内存中的表示及输出结果。例如,当定义`char c3 = 130;`并输出时,由于超出范围,会得到负值-126。这是因为计算机内部以补码形式存储数据,130的高八位被截取后形成负数的补码表示。输出时,不仅展示了ASCII码的对应字符,还讨论了数值形式的输出结果。
最低0.47元/天 解锁文章
7484

被折叠的 条评论
为什么被折叠?



