注意编译器在不考虑类型时的运算范围是int的,如
long long int x = INT32_MAX + 1;
cout << x << endl;
这段代码结果就是-2147483648很显然就是int溢出了,所以
编译器在进行右侧运算时在整数的范围时int的,而在小数的范围是double,这点需要注意,我们应该是先给赋值,然后再通过x进行运算可以了。这里是因为右侧是常量的情况所以才会溢出int,右侧是long long 型变量,就不会溢出了。
注意编译器在不考虑类型时的运算范围是int的,如
long long int x = INT32_MAX + 1;
cout << x << endl;
这段代码结果就是-2147483648很显然就是int溢出了,所以
编译器在进行右侧运算时在整数的范围时int的,而在小数的范围是double,这点需要注意,我们应该是先给赋值,然后再通过x进行运算可以了。这里是因为右侧是常量的情况所以才会溢出int,右侧是long long 型变量,就不会溢出了。