整个编码是正确的,但获得垃圾价值

时间:2017-10-24 12:33:22

标签: 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<<"enter the second no.";
    cin>>b ;
    summation(a,b,sum);
    cout<<"the addition of two no. is :" <<sum ;
    return 0;
}

在写入和求和而不是求和时获得正确的输入。为什么会这样?

1 个答案:

答案 0 :(得分:1)

您按值sum传递summation()方法,并希望通过引用传递它。尝试像这样定义你的方法:

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

当您通过其值传递参数时(与您一样),该方法会创建参数值的副本并使用该副本。在结果中,方法之外的传递参数(sum)保持不变。当您通过引用(int& sum)传递参数时,方法中的sum变量将与sum方法中的main变量相同,您可以制作改变它。