作用1:取地址
作用2:取别名
注意1:引用必须赋值,也可以理解取别名必须有取的对象,不能单独写个&a什么的,a是谁的别名都没有说。
注意2:引用初始化后,就确定了,无法更改,比如a是b的引用,或者说a是b的别名,那么a就不能再做c的别名了。
这里需要提到三种传递:
1 值传递
void swap(int a,int b){
te=a;
a=b;
b=te;
}
2,地址传递
void swap(int *a,int *b){
te=*a;
*a=*b;
*b=te;
}
用 swap(&a,&b)调用
3,引用传递
void swap(&a,&b){
te=a;
a=b;
b=te;
}
用swap(a,b)调用
对比三种传值方法,引用传递其实主函数中的a,b没变,给他起别名进行操作,其实 就是对主函数中的值操作,而地址传递是对主函数中变量的地址进行操作,实质上和引用传递是一样的,只是相对来说,引用传递好理解一些。