引用
在c++中,我们有一种比传递指针更加高效的方式,那就是引用(Reference)。 引用类似于windows环境下的快捷方式,通过快捷方式和可执行程序本身都可以运行程序。 引用的定义方式类似于指针,只不过使用的 "&" 代替了 "*" 。void main()
{
int a = 9;
int &r = a;
cout << a << "," << r << endl;
cout << &a << "," << &r << endl;
}
void main()
{
int a = 9;
const int &r = a;
//或者 int const &r = a;
}
#include<iostream>
using namespace std;
void swap1(int a, int b)
{
int temp = a;
a = b;
b = temp;
}
void swap2(int *a, int *b)
{
int temp = *a;
*a = *b;
*b = temp;
}
void swap3(int &a, int &b)
{
int temp = a;
a = b;
b = temp;
}
void main()
{
//直接传递变量的值
int num1 = 1,num2 = 2;
swap1(num1,num2);
cout << "num1= " << num1 << ", num2= " << num2 << endl;
//改用传递指针变量
int num3 = 3, num4 = 5;
swap2(&num3,&num4);
cout << "num3= " << num3 << ", num4= " << num4 << endl;
//改用传递指针的别名 或者引用
int num5 = 9, num6 = 10;
swap3(num5,num6);
cout << "num5= " << num5 << ", num6= " << num6 << endl;
}
- 直接传递变量的值不能实现两个数据交换目的。
- 传递指针可以实现两个数据交换的目的。
- 通过引用的方式也可以实现两个数据交换的目的。
c++引用作为函数的返回值
c++引用除了可以作为函数形参外,还可以作为函数的返回值include<iostream>
using namespace std;
int x =2;
int y = 5;
int &value(int &z){y=2*5;return z;}
void main()
{
value(x)=10;
cout << "x, y的值分别是: " << endl;
cout << x << ", " << y << endl;
}
//结果:10, 10