我有一个非常基本的问题,但我不确定我是否理解这个概念。假设我们有:
int a = 1000000;
int b = 1000000;
long long c = a * b;
当我运行这个时,c
显示负值,所以我也改变了a
and b
to long long
然后一切都很好。那么我为什么要改变a
and b
,当它们的值在int
他们的产品被分配给c
(这是long long
)?
我正在使用 C/C++
The int
s 没有晋升为long long
在乘法之前,它们仍然是int
以及产品。然后将产品铸造成long long
,但为时已晚,溢出已经发生。
拥有其中之一a
or b
long long
应该也能发挥作用,因为另一个会得到晋升。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)