C++引用
引用的基本使用
作用:给变量起别名
语法:数据类型 &别名 = 原名
例子:
1 int a=10; 2 int &b=a;
b和a占同一个内存地址(可以理解为使b具有a的地址)
对比指针:
int a=10; int* p=&a;
a和p占不同的内存地址
引用的本质是指针常量(指针指向的地址不可以改变,值可以)int * const b=&a;
引用的注意事项
1.引用必须初始化(必须告诉是谁的别名)
2.引用一旦初始化后,就不可以更改了(引用不能脚踏两条船)
引用做函数参数
1 #include <iostream> 2 using namespace std; 3 4 //交换函数 5 6 //1.值传递 7 void mySwap01(int a, int b) 8 { 9 int temp = a; 10 a = b; 11 b = temp; 12 } 13 14 //2.地址传递 15 void mySwap02(int* a, int* b) 16 { 17 int temp = *a; 18 *a = *b; 19 *b = temp; 20 } 21 22 //3.引用 23 void mySwap03(int& a, int& b) 24 { 25 int temp = a; 26 a = b; 27 b = temp; 28 } 29 30 int main() 31 { 32 int a = 10; 33 int b = 20; 34 35 //mySwap01(a, b); //值传递,形参不会修饰实参 36 //mySwap02(&a, &b);//地址传递,形参会修饰实参 37 mySwap03(a, b); //引用传递,形参会修饰实参 38 cout << "a=" << a << endl; 39 cout << "b=" << b << endl; 40 41 system("pause"); 42 return 0; 43 }
引用做函数返回值
1.不要返回局部变量的引用
//这段代码是错误的
int& fun()
{
int a=10;
return a;
}
//这段代码是正确的
int& fun()
{
static int a=10;
return a;
}
2.函数的调用可以作为左值
fun()=1000;
3.常量引用(const修饰的引用)作为函数参数可以防止误操作,和值传递作用类似,但可以节省内存

浙公网安备 33010602011771号