1 . 引用的定义2 . 基本语法3 . 对数组进行引用4 . 引用做函数参数5 . 引用做函数返回值4 . 注意点
1 . 引用的定义引用是c++对c的重要扩充。在c/c++中指针的作用基本都是一样的,但是c++增加了另外一种给函数传递地址的途径,这就是按引用传递(pass-by-reference),它也存在于其他一些编程语言中,并不是c++的发明。
2 . 基本语法Type& ref = val;
#includeusing namespace std; int main() { int a = 10; int &b = a;//此时改变b的值就是改变a的值 cout << a << endl; cout << b << endl; b = 20; cout << a << endl; cout << b << endl; return 0; }
b是a的别名,两人共享一个内存地址,对其中任意一个进行修改,都会造成这片地址的数值发生改变。
int(&f)[10] = arr;
for (int i = 0; i < 10; i++){
f[i] = i+10;
}
for (int i = 0; i < 10; i++){
cout << arr[i] << " ";
}
cout << endl;
4 . 引用做函数参数
#include5 . 引用做函数返回值using namespace std; //值传递 void ValueSwap(int m, int n) { int temp = m; m = n; n = temp; } //地址传递 void PointerSwap(int* m, int* n) { int temp = *m; *m = *n; *n = temp; } //引用传递 void ReferenceSwap(int& m, int& n) { int temp = m; m = n; n = temp; } int main() { int a = 10; int b = 20; //值传递 ValueSwap(a, b); cout << "a:" << a << " b:" << b << endl; //地址传递 PointerSwap(&a, &b); cout << "a:" << a << " b:" << b << endl; //引用传递 ReferenceSwap(a, b); cout << "a:" << a << " b:" << b << endl; }
#include4 . 注意点using namespace std; int& TestFun01() { static int a = 10; //全局变量 return a; } int main() { int& ret01 = TestFun01(); cout << ret01 << endl; return 0; }
- 在引用之前一定要初始化引用初始化之后不能改变不能对NULL进行引用,与引用相关联的必须是一块合法的内存单元函数不能返回局部变量的引用



