Visual c++ 整个编码是正确的,但得到的是垃圾值

Visual c++ 整个编码是正确的,但得到的是垃圾值,visual-c++,Visual C++,当按如下方式编码时,编译器将显示垃圾值: #include<iostream> using namespace std; void summation(int value1,int value2, int sum) { sum = value1+value2; } int main() { int a,b,sum; cout<<"enter first no.\n"; cin>>a ; cout<<"e

当按如下方式编码时,编译器将显示垃圾值:

#include<iostream>
using namespace std;

void summation(int value1,int value2, int sum)
{

    sum = value1+value2;

}
int main()
{
    int a,b,sum;
    cout<<"enter first no.\n";
    cin>>a ;
    cout<<"enter the second no.";
    cin>>b ;
    summation(a,b,sum);
    cout<<"the addition of two no. is :" <<sum ;
    return 0;
}
在写入时获得正确的输入&求和而不是求和。为什么会这样?

您正在通过值将sum传递给求和方法,并且希望通过引用传递它。请尝试这样定义您的方法:

void summation(int value1,int value2, int& sum)
{
    sum = value1+value2;
}

当您像以前那样通过参数值传递参数时,该方法将创建参数值的副本并使用该副本。在结果中,方法外部传递的参数sum保持不变。通过引用int&sum传递参数时,方法中的sum变量将与主方法中的sum变量相同,您可以对其进行更改。

您可能需要重写签名,如int-summationint a,int-b{return a+b;},并在main中类似地调用它:sum=summationa,b;