char c1,c2; c1=197; c2=198; printf("c1=%c,c2=%c\n",c1,c2); printf("c1=%d,c2=%d\n",c1,c2); return 0;#include int main(){char c1,c2;c1=197;c2=198;printf("c1=%c,c2=%c\n",c1,c2); printf("c1=%d,c2=%d\n",c1,c2);return 0;}运行后为什么是C1=?,C
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/28 12:41:23
![char c1,c2; c1=197; c2=198; printf(](/uploads/image/z/652167-63-7.jpg?t=char+c1%2Cc2%3B+c1%3D197%3B+c2%3D198%3B+printf%28%22c1%3D%25c%2Cc2%3D%25c%5Cn%22%2Cc1%2Cc2%29%3B+printf%28%22c1%3D%25d%2Cc2%3D%25d%5Cn%22%2Cc1%2Cc2%29%3B+return+0%3B%23include+int+main%28%29%7B%05char+c1%2Cc2%3B%05c1%3D197%3B%05c2%3D198%3B%05printf%28%22c1%3D%25c%2Cc2%3D%25c%5Cn%22%2Cc1%2Cc2%29%3B++++printf%28%22c1%3D%25d%2Cc2%3D%25d%5Cn%22%2Cc1%2Cc2%29%3B%05return+0%3B%7D%E8%BF%90%E8%A1%8C%E5%90%8E%E4%B8%BA%E4%BB%80%E4%B9%88%E6%98%AFC1%3D%3F%2CC)
char c1,c2; c1=197; c2=198; printf("c1=%c,c2=%c\n",c1,c2); printf("c1=%d,c2=%d\n",c1,c2); return 0;#include int main(){char c1,c2;c1=197;c2=198;printf("c1=%c,c2=%c\n",c1,c2); printf("c1=%d,c2=%d\n",c1,c2);return 0;}运行后为什么是C1=?,C
char c1,c2; c1=197; c2=198; printf("c1=%c,c2=%c\n",c1,c2); printf("c1=%d,c2=%d\n",c1,c2); return 0;
#include
int main()
{
char c1,c2;
c1=197;
c2=198;
printf("c1=%c,c2=%c\n",c1,c2);
printf("c1=%d,c2=%d\n",c1,c2);
return 0;
}
运行后为什么是C1=?,C2=?
C1=-59,C2=-58,
char c1,c2; c1=197; c2=198; printf("c1=%c,c2=%c\n",c1,c2); printf("c1=%d,c2=%d\n",c1,c2); return 0;#include int main(){char c1,c2;c1=197;c2=198;printf("c1=%c,c2=%c\n",c1,c2); printf("c1=%d,c2=%d\n",c1,c2);return 0;}运行后为什么是C1=?,C
第一,ascii字符集只有0~127有定义,剩下的都是未定义的
第二,一般编译器对char是当成signed char 处理的,所以范围是-128~127,197,198显然溢出,又由于你是按有符号整型输出
197,198二进制表示最高位为1,高位扩展,所以为负数