【发布时间】:2014-08-11 09:09:49
【问题描述】:
我正在学习 C++,做了一些简单的示例,并发现了这种奇怪的行为。 填充整数数组的元素时,如果任何元素设置为大于 2147483647(我相信这是最大整数值?),则数组中的其余元素设置为该确切数字,每个其中之一。
我知道如果一个元素超出其类型限制,编译器会将其限制在该限制内,但我不明白为什么它对其他项目做同样的事情,甚至没有要求用户填写它们。
这是我运行的一个简单测试:
#include <iostream>
using namespace std;
int main()
{
int test[5];
int num = 0;
for (int i=0; i<5; i++)
{
cout << "Enter the number in position " << i << endl;
cin >> num;
test[i] = num;
}
cout << "Values in the array: " <<endl;
for (int i=0; i<5; i++)
cout << test[i] << endl;
}
感谢您的阅读、评论和帮助!
【问题讨论】:
-
重复 ;) stackoverflow.com/questions/1065774/… 在这里你可以找到你的答案 :)
-
对于以后的问题:请将输出和字符串翻译成英文,这样代码更容易理解。
-
@neptyd:这显然不是重复的
-
@iFreilicht 每当程序有任何西班牙语内容时,我都会将翻译作为行注释包含在内,即使这无关紧要。如果那是您指的...
-
是的,我就是这个意思。它可能无关紧要(代码实际上并没有那么复杂),但现在更容易阅读。
标签: c++ arrays cin integer-overflow