在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作为输入型参数设计。