c++ 引用

引用就是引用某一变量的别名,其声明格式为:类型& 引用变量名=已定义的变量名。

int& a=b//a是b的别名

1.引用的特点有:
1)一个变量可取多个别名;
2)引用必须初始化;
3)引用只能在初始化时使用一次,不能再成为其他变量的别名;
4)引用并不是定义了一个新的变量,它与目标变量指向同一内存空间。


void test(){
int a=2;
int& b=a;
a=3;
b=4;
int& c=b;//c是别名b的别名
}

使用引用时还要注意const的使用:

void test(){
int a=10;
const int& b=a;
a=5;//b的值也变为5,注意不能给b赋值,因为常量不可改

const int c=2;
const int& d=c;//常引用才能引用常量

int e=20float f=e;//隐式类型转换,e赋值给f时会生成一个临时变量
const float& f = e;//f引用的是这个具有常性即不可改的临时变量,所以要加const
}

2.引用做参数

void Swap(int& a,int& b){
int temp = a;
a = b;
b = temp;
}//形参是实参的别名;当不希望改变参数的值时,可使用常引用传参

3.引用做返回值
1)传值返回

int add(int a ,int b){
int c = a + b;
return c;
}
int main(){
const int& ret = add(1,2);//会产生临时变量,ret是该临时变量的别名
cout<<"ret: "<<ret<<endl;
}

2)传引用返回

int& add(int a,int b){
int c = a + b;
return c;
}
int main(){
int& ret=add(1,2);
cout<<"ret: "<<ret<<endl;
}//ret是c的别名的别名

3.引用和指针的区别与联系
在使用引用时一定要注意&在这里并不是取地址操作符!
a)引用不需要开辟空间,指针需要;
b)引用只能初始化一次且不能指向其他变量,而指针可以;
c)引用必须指向有效变量,指针可以为空;
d)引用和指针自增、自减的意义不同;
f)使用sizeof引用指针时,得到的是所指向目标变量的大小,而指针是指向对象地址的大小;
总的来说,引用比指针安全,而指针比引用更加灵活,根据不同要求来判定使用引用好还是指针好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值