在C++中提供了一种引用运算符“&”,将某一变量定义为另一个变量的引用变量,改变其中的一个变量两者均会同步变化。
什么是应用变量?
引用变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。在指令式语言中,引用变量通常是可变的;但在纯函数式语言中,变量可能是不可变的。摘自百度百科
①定义一个引用变量
int a;int &b=a; //将b定义为a的引用变量
示例及验证:
#include
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
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作为输入型参数设计。