C++ “引用”的初步认识与理解

yx 技术探讨C++ “引用”的初步认识与理解已关闭评论77,046字数 623阅读2分4秒阅读模式

在看C++ Primer 这本书时发现其对引用的解读有些许复杂,于是在这里做一个对其的初步理解与总结

引用含义:总结下来也就是某个变量(对象)的另一个名字,对引用的操作也就是对其绑定的变量(对象)进行操作。换个说法就是对引用的操作和其绑定的变量(对象)的操作完全等价。

引用语法

类型  &引用名 = 与其绑定的变量(对象)名;

特别注意

  1. 给引用赋值,实际上是给与其绑定的变量(对象)赋值
  2. 获取引用的值,实际上是获取与其绑定的变量(对象)的值
  3. 以引用作为初始值,实际上是与引用绑定的变量(对象)作为初始值
  4. 引用本身不是一个变量(对象),所以不能定义引用的引用
  5. 定义引用时,程序把引用和他的初始值绑定在一起,而不是把初始值赋值给引用(不知道这么说有没有问题)

引用演示且注意

  1. &不是求地址运算,而是起标识作用
  2. 引用类型必须和其绑定的变量(对象)类型相同
#include 
int main()
{
	int a = 1;
	double &b = a; //这里就是错误的,其类型和所绑定的变量类型不一致
	int &b = a; // 正确
	std::cin >> a;
}
  1. 在声明引用的同时必须对其进行初始化

 文章源自楠竹林-https://www.nanzl.com/archives/803

#include 
int main()
{
	int a = 1;
	int &b1; //错误:必须初始化
	int &b1=a; //正确
	b = 2;
	std::cout << &b << std::endl; std::cin >> a;
}

  1. 引用类型的初始值必须是一个对象
#include 
int main()
{
	int a = 1;
	int &b = 2; // 错误
        int &b = a; // 正确
}

文章源自楠竹林-https://www.nanzl.com/archives/803文章源自楠竹林-https://www.nanzl.com/archives/803
yx