💯 博客内容:C++的引用 拷贝赋值和引用赋值
😀 作 者:陈大大陈
🚀 个人简介:一个正在努力学技术的准前端,专注基础和实战分享 ,欢迎私信!
💖 欢迎大家:这里是CSDN,我总结知识和写笔记的地方,喜欢的话请三连,有问题请私信 😘 😘 😘
目录
引用
引用的基本概念
拷贝赋值和引用赋值
引用
引用的基本概念
引用是C++里面才有的概念。引用并不是定义了一个新的变量,它只是为一个现存变量起的别名。
例如:
int i=1;
int &k=i;
k就是i的一个别名。
定义引用需要注意的地方:
- 一旦初始化完成,引用会和初始值变量一直绑定在一起,无法重新绑定到另一个变量,因此引用必须初始化。
- 引用的类型要和与之绑定的变量相匹配。
- 引用只能绑定在变量上。
- 不能定义引用的引用。
来看几个错误的例子巩固一下:
int i = 2;
int& j;//错误,没有初始化
double& k = i;//错误,类型不一样
int& n = 3;//引用类型的初始值必须是一个变量,不能是字面值常量
int& o = i;//正确
int& p = o;//错误,不能定义引用的引用
但是可以在一条语句中定义多个引用。例如:
int i=2;
int &j=i,&k=i;
拷贝赋值和引用赋值
其实就类似于传值和传址的区别。
下面来具体看两个代码:
#include<bits/stdc++.h>
using namespace std;
using gg = long long;
int main()
{
gg i = 1;//定义了变量i,并用1初始化
gg j = i;//将变量i的值拷贝赋值给j
j = 2;
cout << "i = " << i << ",j = " << j;
return 0;
}
运行结果:
#include<bits/stdc++.h>
using namespace std;
using gg = long long;
int main()
{
gg i = 1;//定义了变量i,并用1初始化
gg &j = i;//将变量i的值拷贝赋值给j
j = 2;
cout << "i = " << i << ",j = " << j;
return 0;
}
运行结果:
第一个是拷贝赋值,第二个是引用赋值。
总之一句话,引用即别名。
引用并没有创建一个新的变量,只是对原有的变量起了一个新的名字。