- 代码如下
unsigned short c = 1, d = 3;
int a = c - d;
unsigned short b = c -d;
cout << a << endl;
cout << b << endl;
- 结果是
-2
65534
- 因为在计算的时候,会现将无符号数转化成有符号数计算,所以c-d的结果是-2,在给b赋值的时候,转化成了无符号数,就是65536+(-2)。
c -= d和c--等这些计算方式也会出现这种情况,在判断结果是否小于0等时候出错。
4146



被折叠的 条评论
为什么被折叠?



