我有这个代码,这两个计算给了我不同的结果。 第一个溢出,第二个只保留 2^31-1。
我不明白为什么。
int n4, n5; n4 = pow(2, 31); n4 = n4 + n4; n5 = pow(2, 31) + pow(2, 31); printf("\nn4: %d, n5: %d",n4,n5); /* n4: -2, n5: 2147483647 */
c integer-overflow
c ×1
integer-overflow ×1