c++Lesson03 引用

来源:互联网 发布:w2003办公软件下载 编辑:程序博客网 时间:2024/06/05 01:57

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

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)//可以规避改变外部值的危险
0 0
原创粉丝点击