对于c++来说,前提条件,c++版本不易过低,太低的和c的机制差不多。
看下面两个程序:

cpp代码

#include <cstdio>
int main() {
int u;
scanf("%d", &u);
printf("%d\n", u);
return 0;
}

c代码

#include <stdio.h>
int main() {
int u;
scanf("%d", &u);
printf("%d\n", u);
return 0;
}

cstdio与stdio.h是不同的一个属于c++,一个属于c,但是他们都可以调用scanf()和printf()
当我们输入数据:4294967295
c++的处理会对输入的数据进行检测,最终以溢出的方向进行收敛,负溢出收敛为int型的最小值,正溢出收敛为int型的最大值。
c的处理是会对输入数据的二进制从低到高位存到内存中,只读4字节,所以如果位超过4字节,多余的的舍弃,然后以对int型的解释方法解释二进制数据,在代码中的表现是隐式转化,答案为-1。