两个无符号数相减得到一个负数,如-6减去-7
int main() { unsigned i1 = 6, i2 = 7; cout << i1 - i2; return 0; }
正确答案是-1,但会输出结果4294967295。
因为编译器输出会是-1和2^31次方的模。
若要得到正确答案,用一个int变量存放。
int main() { unsigned int i1 = 6, i2 = 7; int i3 = i1 - i2; cout << i3; return 0; }
书本解释
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)