有关TC2.0的一个整数越界问题
int i,j; i = 32767; j = i + 1; printf ("%d,%d",i,j) 输出的是 32767 , -32768 因为越界了‘ 可是我将程序改成如下 long i,j; i = 32767; j = i + 1; printf ("%d,%d",i,j) 输出的怎么还是 32767 , -32768 请高手指教
“%d”输出带符号的十进制数; “u%”输出无符号的十进制数; 所以说,不在于原变量的类型,关键在于输出格式转换字符。建议将原输出语句改为 printf ("%u,%u",i,j) 再运行一下,看看结果是否有变化?
答:详情>>