这个程序是怎么进行运算的?输出了"A,?“然后换行继续输出”65,-112“

#include
int main()
{ char c1,c2;
c1=321;c2=400;
printf("%c,%c\n",c1,c2); printf("%d,%d\n",c1,c2);
return 0;
}

c1,c2是char类型,长度为一个字节8位,那么你给它赋一个数值,他只存储所给数值二进制低八位,即c1=0100 0001,c2 = 1001 0000
这两个值对应字符为'A'和'?',对应十进制数为65,-112;
注意c2首位是1,是补码表示,换算过来是-112