我的第二次C ++尝试问题,并使用变量

时间:2011-03-30 10:05:06

标签: c++

嘿,使用这段代码我总是以数字1结束,为什么会这样。

#include <iostream>

using namespace std;
int y;
int x = (y + 1);

int main()
{
   cin >> y;
   cout << x << endl;
   return 0;
}

3 个答案:

答案 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;
}