嘿,使用这段代码我总是以数字1结束,为什么会这样。
#include <iostream>
using namespace std;
int y;
int x = (y + 1);
int main()
{
cin >> y;
cout << x << endl;
return 0;
}
答案 0 :(得分:4)
因为初始化时y可能设置为0,因此x = 0 + 1 = 1; 你必须使用一个函数来获得你想要的行为,比如
int yPlusOne(int y) { return y + 1};
int main() {
cin >> y;
cout << yPlusOne(y) << endl;
return 0;
}
答案 1 :(得分:4)
该行:
int x = (y + 1);
不会自动将x
的值与始终 y + 1
联系起来。因为您在y
为零时设置它(作为文件级变量,y
初始化为0)并且从不更改它,x
将为1
。如果您希望x
更改为y
,则应在x
更改时设置y
,例如:
#include <iostream>
int y, x;
int main (void) {
std::cin >> y;
x = y + 1;
std::cout << x << std::endl;
return 0;
}
答案 2 :(得分:0)
这不是C ++的工作方式。
您定义了y
变量,然后定义了具有一些初始值的x
变量。在main
函数中,您将新值加载到y
,但x
保持不变。您需要编写如何处理y
中的值,因此将行x = y + 1
放在具有输入和输出的行之间:
#include <iostream>
using namespace std;
int y;
int x;
int main()
{
cin >> y;
x = y + 1;
cout << x << endl;
return 0;
}