int x = -2147483648

来源:互联网 发布:淘宝产品文案类型 编辑:程序博客网 时间:2024/06/05 17:16

直接写 int x = -2147483648 在vs 2013 里会报错,因为在编译的时候, -2147483648 当做一个表达式, 用一个int 型的2147483648 当做中间变量, 然而,int型的2147483648 超出了范围,所以编译器把它转化为unsigned int类型,然后前面又有一个负号,所以报错:

错误 10 error C4146: 一元负运算符应用于无符号类型,结果仍为无符号类型

正确的方式有一下两种:

1:

int n = -2147483647 - 1;

2:

int n = INT_MIN;


原创粉丝点击