&引用操作
给一个变量起一个别名
如:int a = 10; //a是指向一个int型内存,内存内容为10
int &b = a; //b为a的引用,b和a的属性一样,无论操作a还是操作b操作的都是同一块内存的内容
注意事项:
引用需要初始化 //int &b;错误 int &b = a;正确
引用后不能够更改引用,但是能更改内容 //b = c,b的值改为c的值,b还
是a的引用
&引用作函数参数
以引用作为形参,能够更改main函数中的a,b
void swap(int &a,int &b){//以引用作为形参,能够更改main函数中的a,b
int temp=a;
a=b;
b=temp;
}
int main(){
int a=1;
int b=10;
swap(a.b);
return 0;
}
&引用作函数返回值
(一)引用局部变量——错误
在函数退出的时候,系统会释放函数内定义的局部变量,引用到外界会导致出错
int& swap(){//以引用作为形参,能够更改main函数中的a,b
int a=10;
return a;
}
int main(){
int &a = swap();//错误,这样引用的是局部变量,可能出错
return 0;
}
(二)引用静态局部变量——正确
因为该数据不会在该函数结束时被释放,二十程序执行完毕后才会释放
int& swap(){//以引用作为形参,能够更改main函数中的a,b
static int a=10;
return a;
}
int main(){
int &a = swap();//错误,这样引用的是局部变量,可能出错
return 0;
}
&引用的本质
本质就是 int* const p = a; //指针的指向不可更改,但是内容可更改