c++Lesson03 引用

引用相当于是一个变量的别名,必须指向变量,比如

int val=100;
int &refval=val;
int*p=&val;//指针与引用不同在于,指针指向的变量可以修改

声明引用变量时候必须初始化,一经申明不可变更

int rat;
int & rodent;
rodent=rat//错误,不能像指针那样先申明再赋值
int a,b;
int&r=a;
int&r=b;//错误,不能更改原有的引用关系

可以对引用再次引用,多次引用的结果是一变量具有多别名

int a;
int &r=a;
int &rr=r;//可以,表示a有两个别名,分别是r和rr

引用有点接近const,必须在创建时初始化,一旦产生关联将一直效忠下去

int &rodents=rats;
int *const ptr=&rats//rodents扮演的角色和表达式*ptr一样

常引用

const引用的目的是:禁止通过修改引用值来修改被引用的对象
普通引用绑定到const是不合法的,比如

const int a =1;int &b=a;//编译不通过,a为const表示不能被修改,必须使用const引用
double val=3.14;
const int &ref=val;
double &ref2=val;
cout<<ref<<"  "<<ref2<<endl;
val=4.14;
cout<<ref<<"  "<<ref2<<endl;
//结果是 3 3.14 3 4.14

由于ref为const,初始化给定的值无法被修改,而val是非const的,所以会改变ref2的值

按引用传递

在参数中放入引用类型,传递的是本身的(的地址),将参数作为变量使用,作用于外部

void swap(const int&rhs,const int&lhs)//可以规避改变外部值的危险
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值