引用参数对应的实际参数(引用参数学习笔记)
导读:引用参数 定义...
引用参数
定义
引用参数是由调用部位传入实参的地址(写在留言板上)的形参 。
以符号“& ”开始的参数即为引用参数 。
如果一个形参是引用参数 ,调用部位将把实参的地址传递给子程序 。子程序可以改变传递给引用参数的任何实参 ,因为子程序操作的是真正的变量,而不是它的副本 。
引用变量在声明的时候必须初始化
例如:
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修饰创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!