我正在尝试用c++;但大量的数据正在显现 我是Tyimg,在C++中做基本的加法,但大量的显示而不是显示的数字。 #include <iostream> using namespace std; int main() { int x; int y; int sub = x + y; cout<<"Enter First number:"<<endl; cin>>x; cout<<"Enter second number:"<<endl; cin>>y; cout << "The sum is: "<< sub << endl; return 0; } #包括 使用名称空间std; int main() { int x; int-y; int sub=x+y; cout

我正在尝试用c++;但大量的数据正在显现 我是Tyimg,在C++中做基本的加法,但大量的显示而不是显示的数字。 #include <iostream> using namespace std; int main() { int x; int y; int sub = x + y; cout<<"Enter First number:"<<endl; cin>>x; cout<<"Enter second number:"<<endl; cin>>y; cout << "The sum is: "<< sub << endl; return 0; } #包括 使用名称空间std; int main() { int x; int-y; int sub=x+y; cout,c++,calculator,C++,Calculator,在接受用户输入之前,您正在计算和。此外,您正在对两个未初始化的变量求和,导致未定义的行为。sub在设置x和y之前被创建和属性化。当您声明变量但不初始化时,您从中获得未知值您以前在堆栈上使用过 如果在从终端读取x和y后将sub变量属性移动到,程序将正常工作。不要忽略编译器给您的警告。在获得x和y的值后移动sub=x+y。此时您正在初始化sub到x+y,其值未定义,因此您会得到未定义的行为。C++不会懒散地进行计算。懒散的计算。我甚至没有想到这一点,@user975989。打得好。值得将其转换为解释

在接受用户输入之前,您正在计算和。此外,您正在对两个未初始化的变量求和,导致未定义的行为。

sub
在设置
x
y
之前被创建和属性化。当您声明变量但不初始化时,您从中获得未知值您以前在堆栈上使用过


如果在从终端读取
x
y
后将
sub
变量属性移动到,程序将正常工作。

不要忽略编译器给您的警告。在获得
x
y
的值后移动
sub=x+y
。此时您正在初始化
sub
x+y
,其值未定义,因此您会得到未定义的行为。
C++
不会懒散地进行计算。懒散的计算。我甚至没有想到这一点,@user975989。打得好。值得将其转换为解释OP哪里出错的答案。谢谢,我现在明白了。