1.引用的格式: 类型 &引用=已定义的变量名 int i=5; int &j=i; j=8; (i的值也会改变,因为j即为i的别名) 2.指针是通过地址间接访问某个变量,需要书写间接运算符“*”; 引用是通过别名直接访问某个变量。 3.引用作为函数参数: ① 用变量做函数参数
#include <iostream> using namespace std; void swap(int m,int n) { int temp; temp=m; m=n; n=temp; } int main() { int a=5,b=10; cout<<"a="<<a<<",b="<<b<<endl; swap(a,b); cout<<"a="<<a<<",b="<<b<<endl; return 0; } a=5,b=10 a=5,b=10 ② 用指针做函数参数 #include <iostream> using namespace std; void swap(int *m,int *n) { int temp; temp=*m; *m=*n; *n=temp; } int main() { int a=5,b=10; cout<<"a="<<a<<",b="<<b<<endl; swap(&a,&b); cout<<"a="<<a<<",b="<<b<<endl; return 0; } a=5,b=10 a=10,b=5 ③ 用引用做函数参数#include <iostream> using namespace std; void swap(int &m,int &n) { int temp; temp=m; m=n; n=temp; } int main() { int a=5,b=10; cout<<"a="<<a<<",b="<<b<<endl; swap(a,b); cout<<"a="<<a<<",b="<<b<<endl; return 0; } a=5,b=10 a=10,b=5 #include <iostream> using namespace std; void swap(int &m,int n) { int temp; temp=m; m=n; n=temp; } int main() { int a=5,b=10; cout<<"a="<<a<<",b="<<b<<endl; swap(a,b); cout<<"a="<<a<<",b="<<b<<endl; return 0; } a=5,b=10 a=10,b=10 4.使用引用返回函数值: 使用引用可以返回函数的值, 采用这种方法可以将该函数调用放在赋值运算符的左边。 #include<iostream> using namespace std; int a[ ]={1,3,5,7,9}; int & index(int i) //定义函数返回一个int类型的引用,等价于返回数组元素a[i] { return a[i] ;} int main() { cout<<index(2)<<endl;//等价于输出数组元素a[2]的值 index(2)=25; //将函数调用放在赋值运算符的左边, 等价于将a[2]赋值为25 cout<<index(2); return 0; } 运行结果:5 25 5.可以用const对引用加以限定引用,但不允许改变该引用的值. 例如: int i=5; const int &a=i; //声明常引用,不允许改变引用a的值
6.
引用必须初始化
引用是某个变量或对象的别名
引用和它所引用的变量共用一个存储空间
引用不可以没有数据类型(即int)