标签: c++ min
当我执行以下代码时:
StringFormat
我获得cout<<min(INT_MAX, INT_MAX+ INT_MAX); 作为输出。有人可以解释原因吗? 输出不应该是-2的值吗?
cout<<min(INT_MAX, INT_MAX+ INT_MAX);
-2
答案 0 :(得分:5)
INT_MAX+ INT_MAX调用未定义的行为,因为有符号整数溢出。
INT_MAX+ INT_MAX
C ++标准:
如果在评估表达式期间,结果不是 在数学上定义或不在可表示值的范围内 它的类型,行为未定义。