visual C++6.0编译系统中,C语言编程。(1)int a=32767; char b; b=a+1; printf(“%d\n”,b);(2)char c=225; printf(“%d\n”,c);为什么一个输出-1,一个输出-32768?我认为是题目有
推荐回答
输出不正确,第一个应该是0;第二个应该是-31;%d是输出整形;怎么来的呢:因为char是有符号8bits组成,最高一位是符号型,也就是从int中取数是取的低八位:b=32768%256=0; c=225=(int)225-256=-31; 换句话说,char 转 int:小于128则取当前数,大于等于128则取当前数减去256即可;