引用运算符&(C++)

在C++中提供了一种引用运算符“&”,将某一变量定义为另一个变量的引用变量,改变其中的一个变量两者均会同步变化。


什么是应用变量?

引用变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。在指令式语言中,引用变量通常是可变的;但在纯函数式语言中,变量可能是不可变的。摘自百度百科

①定义一个引用变量

	int a;
	int &b=a;        //将b定义为a的引用变量

示例及验证:

#include <stdio.h>
int main()
{
	int a=1;
	int &b=a;       
	printf("a=%d b=%d\n",a,b);
	
	a+=5;
	printf("a=%d b=%d\n",a,b);

	b/=2;
	printf("a=%d b=%d\n",a,b);
	return 0;
}

②引用多用于函数形参中,当定义的函数使用引用型形参时,函数调用时形参的改变会同时带来实参的改变。

eg:

#include <stdio.h>
int main()
{
	int a,b;
	void swap(int &x,int &y);
	printf("请分别输入a和b的值\n");
	while(~scanf("%d %d",&a,&b))
	{
		swap(a,b);
		printf("a=%d b=%d\n",a,b);
	}
	return 0;
}
void swap(int &x,int &y)
{
	int t;
	t=x;
	x=y;
	y=t;
}

运行结果:



注:上面的swap函数实现的是两个值交换的简单功能,但如果定义函数时如果这样定义:

void swap(int x,int y)
{
	int t;
	t=x;
	x=y;
	y=t;
}

运行后会发现两个数的值并不会发生改变。

这是错误的原因是形参x,y既作输入型参数,也作输出型函数,而swap(x,y)仅将形参x,y作为输入型参数设计。


猜你喜欢

转载自blog.csdn.net/gsdxiaohei/article/details/79392280