编译器在编码时显示垃圾值,如下所示:
#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;
}
在写入和求和而不是求和时获得正确的输入。为什么会这样?
答案 0 :(得分:1)
您按值sum
传递summation()
方法,并希望通过引用传递它。尝试像这样定义你的方法:
void summation(int value1,int value2, int& sum)
{
sum = value1+value2;
}
当您通过其值传递参数时(与您一样),该方法会创建参数值的副本并使用该副本。在结果中,方法之外的传递参数(sum
)保持不变。当您通过引用(int& sum
)传递参数时,方法中的sum
变量将与sum
方法中的main
变量相同,您可以制作改变它。