注册 登录
编程论坛 C++教室

新手对引用返回和参数引用的理解,求验证!

okay011 发布于 2012-07-22 11:20, 359 次点击
#include<iostream>
using namespace std;

#include<iostream>
#include<iomanip>
using namespace std;

int w; int v=3;int b=5;
int &f(int &i,int  &j){  //这行有一个引用返回和2个引用参数。
 
 w=i+(++j);
 return w;
 }

int main(){   
    int s=f(v,b);
    cout<<s<<endl;
    f(v,b)=999;
    cout<<w<<endl;
    cout<<b<<endl;
    cout<<f(v,b)<<endl;

}

我理解 &f 就是一个地址,它只能接收 w 的地址,对f进行操作也就是对它接收的w的地址上的数据(即w)进行操作。
       &i 和 &j 只是接收v 和 b 的地址, 对 i 和 j 的操作同样是对 v和 b 上的地止上的数据进行操作。
&x(x为任意字符)表示仅接收地址的意思?
我这么理解有错么?对以后的学习会不会有干扰?
2 回复
#2
lonmaor2012-07-22 11:25
听起来是对的,&就是取地址操作符。形参是以引用的形式传递的,函数体内对实参的修改都应在原数据上而不是副本。
#3
liudw22012-07-23 11:23
&f已经创建了返回值的地址,不像副本临时变量,不用复制,只要指向f()的地址,自然可以改变返回值
1