typedef long long ll;
long long c;
int a,b;
c = a + b;
我以为只要左边是long long ,然后 即使右边是两个int,且相加爆int ,还是可以正确赋给long long 的;
比如
a=2147483647(int 的最大值)
b=1
我还以为c会=2147483648
结果这样也会爆int,c直接变成-2147483648;
所以应该这样写
c = (ll)a + (ll)b;
typedef long long ll;
long long c;
int a,b;
c = a + b;
我以为只要左边是long long ,然后 即使右边是两个int,且相加爆int ,还是可以正确赋给long long 的;
比如
a=2147483647(int 的最大值)
b=1
我还以为c会=2147483648
结果这样也会爆int,c直接变成-2147483648;
所以应该这样写
c = (ll)a + (ll)b;