引用参数学习笔记
引用参数
定义
引用参数是由调用部位传入实参的地址(写在留言板上)的形参。
以符号“&”开始的参数即为引用参数。
如果一个形参是引用参数,调用部位将把实参的地址传递给子程序。子程序可以改变传递给引用参数的任何实参,因为子程序操作的是真正的变量,而不是它的副本。
引用变量在声明的时候必须初始化
例如:
int a;
int & ref = a;
引用参数操作的是引用的对象内存中的空间
int a = 10;
int & ref = a;//ref 引用 a的内存地址
printf("ref = %d\n", ref);
a = 20;//当a内存的值改变,ref找到a的内存地址得到改变后的值
printf("当a改变后ref = %d\n", ref);
ref = 30;//ref对引用的内存地址进行改变, a在内存中的值改变,a改变
printf("当ref改变后a=%d",ref);
普通变量操作自己的内存空间
int a = 10;
int b = a;//使用了一个int大小的空间给b,将a的值复制给b
printf("b = %d\n", b);
a = 20;//当a所在内存的值改变,b所在内存 的值不会受影响
printf("当a改变后b = %d\n", b);
b = 30;//b所在内存的值改变, a在内存中的值也不会受影响
printf("当b改变后a=%d",a);
使用引用参数的函数调用方式
int sum(int & a, int & b);
//c = sum(10, 20); 错误,不能传入直接数
int a = 10, b = 20;
c = sum(a, b); //正确,必须通过变量将值传入函数
但是如果函数在声明的时候用const
修饰了引用变量,就可以传入直接数,编译器会创建一个临时的无名变量跟引用变量绑定。例如:
int sum(const int & a,const int & b);
c = sum(10, 20); //正确,引用变量被const修饰
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理