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;
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;
日期:2011-11-20 10:21:40 人气:2
第一,ascii字符集只有0~127有定义,剩下的都是未定义的
第二,一般编译器对char是当成signed char 处理的,所以范围是-128~127,197,198显然溢出,又由于你是按有符号整型输出
197,198二进制表示最高位为1,高位扩展,所以为负数