引用参数

定义

引用参数是由调用部位传入实参的地址(写在留言板上)的形参

以符号“&”开始的参数即为引用参数。

如果一个形参是引用参数,调用部位将把实参的地址传递给子程序。子程序可以改变传递给引用参数的任何实参,因为子程序操作的是真正的变量,而不是它的副本。

引用变量在声明的时候必须初始化

例如:

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修饰

发表回复