#include <iostream>
using namespace std;
int main()
{
unsigned int u1 = 42, u2 = 10;
cout << u1 - u2 << endl;
cout << u2 - u1 << endl;
return 0;
}
上面的输出结果为:
32
4294967264
显然下面的结果是-32与16位整数取模后的值。
这样理解:两个无符号数相减后,类型依然为无符号类型,然后将其输出。
注意for循环时条件里面的变量不要用无符号类型,否则可能会造成死循环。
#include <iostream>
using namespace std;
int main()
{
for (unsigned i = 10; i >= 0; i++) //死循环
cout << i;
cout << endl;
return 0;
}