图一中:
char c = 127;
printf("%d", c+1);
在C语言中的整数常量是以整形int进行存储的,这里127和1就是这种情况;另外在运算过程中如果两个运算数不是同种类型,编译器会把精度较低的数转换为精度较高的数,所以c+1是char+int会转化为int+int即127+1=128结果也是int。
图二中:
c=c+1;
c+1=128但是赋值给char c要进行转换128转为char就是-128,所以最后输出-128。
图三中:
首先c=255转为有符号的char那么c实际等于-1。那么c+1就等于0,最后结果输出0。
温馨提示:答案为网友推荐,仅供参考