void test(int &sum)关于这个参数的问题

程序如下,voidtest(int&sum){intx;cin>>x;if(x==0)sum=0;else{test(sum);sum+=x;}cout<<sum;}看不... 程序如下,
void test(int &sum)
{
int x;
cin>>x;
if(x==0) sum=0;
else
{
test(sum);
sum+=x;
}
cout<<sum;
}

看不懂这个程序、、、开始是一个参数,要求参数类型是int,为什么可以是&sum,&不是取地址的吗?如果输入X不是0,那么就是test(sum),继续输入X,直到X=0,然后sum开始不断求和、、、 没搞懂。
展开
 我来答
cpucash
2014-02-27 · TA获得超过1584个赞
知道小有建树答主
回答量:1457
采纳率:66%
帮助的人:971万
展开全部
这个是c++的代码,不是c基础的代码
&作为参数,在c基础中不讲
&是取地址的运算符
在这里是哪个意思没错,但是用法是变量的别名。就相当于人的小名或者外号一样,让两个变量其实是表示一个东西(体现在程序中,就是两个变量其实是指一个内存地址(在程序编译为exe时,二进制代码中式没有变量名的,只有变量的地址))
意义是让实参和形参在一个内存地址中(一般来说,实参和形参是不在一个内存地址中的),这样子函数就可以改变调用它的函数中的变量的数值了
jfluo0101
2014-02-26 · TA获得超过1415个赞
知道小有建树答主
回答量:225
采纳率:0%
帮助的人:275万
展开全部

看你的代码应该C++。


那么int &就表示一种“引用”类型。


  1. 引用的表示方法与定义指针相似,只是用&代替了*。引用(reference)是c++对c语言的重要扩充。

  2. 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标变量名; 说明:&在此不是求地址运算,而是起标识作用;

  3. 使用引用的一个好处是:减小内存开销,提高代码的执行效率。


至于test函数,这个是一个递归函数。。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式