Welcome 微信登录

首页 / 操作系统 / Linux / C++中的引用

一,C++中引用的基础知识1.引用的基本概念 1.所谓的引用其实就是对变量起“别名”。引用和变量对应得是相同的内存,修改引用的值,变量的值也会改变,和指针类似。 2.引用在定义的时候必须要初始化,初始化后就用引用的对象绑定在一起了。 3.引用本身不是对象,不能定义引用的引用。2.引用的意义 1.引用作为其他变量的别名存在,因此在一些场合可以用来替代指针。 2.引用相对于指针来说具有更好的可读性和实用性。3.引用的定义方式 数据类型 &引用名称 = 变量;# include<iostream>using namespace std;int main(){// 定义变量aint a = 10;// 定义引用bint &b = a;return 0;}二,引用的本质1.引用的本质剖析# include<iostream>using namespace std;int main(){// 定义变量aint a = 10;// 定义引用bint &b = a;// 引用一旦初始化,就不再改变本身所绑定的对象,因此引用很想一个const修饰的常量cout << "&a = " << &a << endl;cout << "&b = " << &b << endl;// 通过打印地址,发现变量和引用的地址相同,因此引用本质是一个指针return 0;}2.引用的本质分析 1.引用的初始化之后不允许被修改,因此引用是一个常量。 2.引用的地址和变量本身的地址一样。因此引用是一个指针。 3.引用的本质是一个常量指针,只是C++编译器帮助我们进行了自动取地址操作和解引用操作。 4.上述的案例的本质:int &b = a; 相当于 int * const b = &a;三,引用的重点1.引用作函数参数 引用作函数参数可以用来替代指针,在函数内部操作引用,就可以修改函数外部变量的值。2.引用作函数返回值(此处涉及类的拷贝构造函数) 引用作函数返回值,如果返回的是栈变量,则实际返回的是该变量的一份拷贝。3.指针引用 引用是指针类型的,例如:Teacher teacher = {"王刚",21};Teacher * &t = &teacher;4.常引用 使用变量初始化引用,使引用具有只读属性,保护了引用所指向的对象,防止被函数内部修改。 使用字面量初始化引用,例如:const int &a = 10;是可以的,这里会在编译期间对字面量常量分配内存空间,在上一节的const中有提过。