C++引用(别名)
1.引用变量是一个别名,也就是说,是已经存在的某个变量另外一个名字。声明引用时,需要将其初始化为一个变量。引用只是访问数据的方式。
2.引用的格式:
变量类型 定义的变量名 = 变量;
变量类型 &引用变量名 = 定义的变量名;
3.引用的特点:①一个变量可取多个别名。②引用必须初始化,只有别名是不能成立的。③引用只能在初始化的时候引用一次 ,不能更改为转而引用其他变量。
4.C++引用
4.1基础数据类型的引用
#include<iostream> using namespace std; // 引用是相应变量的别名 int main(){ int num=10; cout << "num:" << num << endl; cout << "&num:" << &num << endl; int &ref = num ; cout << "ref:" << ref << endl; cout << "&ref:" << &ref << endl; return 0; }
可以看出ref为变量10的别名。
4.2指针类型的引用
指针类型的引用格式:类型 *&指针引用名 = 指针,其实就是地址的别名。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #include<iostream> using namespace std; int main(){ int num=10; cout << "num:" << num << endl; cout << "&num:" << &num << endl; int *p = &num ; cout << "p:" << p << endl; // 这里理解为是变量地址的别名 cout << "&p:" << &p << endl; int *&q = p; cout << "q:" << q << endl; cout << "&q:" << &q << endl; return 0; } |
记住引用是变量的别名,引用是访问相应变量存储的数据的方式。我们向内存申请一个变量10,其中num就是10的别名,简单理解就是num和10一样。指针存储的是num(10)的内存地址,那其实内存地址也可以理解为一个变量,p就是地址变量的别名,int *&q=p,那么q也是地址的别名,*&p和*&q和p和q其实是等价的。
4.3函数类型的引用
#include<iostream> using namespace std; // 计算平方值 void GetSquare(int &num); // 引用能够访问相应变量的内存单元,在编写函数时是十分有用的 // 函数类型的引用 int main(){ int num=0; cout << "Enter num:" << endl; cin >> num; GetSquare(num); cout << "num:" << num << endl; return 0; } void GetSquare(int &num){ num = (num) * (num); }
将const用于引用,按引用向函数传递参数,此时可以极大提高性能,被调用函数直接调用函数栈,但是要确保被调用函数不能修改函数栈里面的变量很重要,
因此将const用于函数调用。
#include<iostream> using namespace std; void GetSquare(const int &num,int &result); // 与前者的区别 该程序使用了两个参数 一个用于接受输入 一个用于存储运算结果 int main(){ int num=0; int square=0; cout << "Enter num:" << endl; cin >> num; GetSquare(num,square); cout << "square:" << square << endl; return 0; } void GetSquare(const int &num,int &result){ result = num * num; }
分类:
C++学习 / C++指针和引用
, C++学习
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程