C++学习笔记---引用

来源:互联网 发布:数据下载 编辑:程序博客网 时间:2024/06/11 11:45

 引用,reference 在本质上就是指针,从创建开始,就与目标绑定
 指针定义
 int a = 123;
 int* p = &a;
 称作:“p指向了变量a”
 引用定义
 int a = 123;
 int& r = a; //引用的定义
 称作:“r是变量a的引用”  “r引用了变量a” 和指针是一个意思
 指针的使用
 int a = 123;
 int* p = &a;
 *p = 999;
 引用类型
 int a = 123;
 int& r = a; //引用的定义
 r = 999; //队r的操作,就是对a的操作
 引用可以看作是目标对象的一个别名,对引用的操作其实就是对目标对象的操作。r的地址与a的地址相同
 注意事项:
 1)引用必须在定义的时候初始化,也就是创建就要与目标对象绑定。
 以下代码有语法错误:
 int a = 123;
 int& r; //语法错!必须初始化!
 2)引用在定义时就与目标对象绑定,无法解绑
 引用的更多用法
 (1)引用作为函数的参数
和指针类似,引用也可以作为函数的参数,功能相同。“传引用”和“传地址”本质相同。
所以,参数的传递有两种方式:
1>传值(效率低)
2>传地址或传引用(效率高)
 (2)引用作为函数的返回值
和指针一样,引用也可以作为函数返回值
例:
int number = 0; //全局变量
int& test()
{
return number;//并不是返回了number的值,而返回了他的引用
}
 注意:普通函数的返回值都只是右值,只有返回引用时才能当做左值来用。
 和指针一样,引用也有安全性问题。
 主要是检查引用的目标对象是否有效
 比如,引用的目标对象是一个局部变量,那么,在函数退出后,目标对象失效,所以引用也就不能用了。
 例:
 int& test()
 {
int target = 123;
return target;
 }
 
 
原创粉丝点击