引用操作
引用和变量,对象之间是一种关联关系。引用通俗一点就是给取个小名
#include <iostream>
using namespace std;
int main(int argc, const char * argv[]) {
int a=10;
int &ra =a;
cout << "&ra的值:"<<ra<<endl;
cout << "a:"<<a<<endl;
cout << "&ra的地址:"<<&ra<<endl;
cout << "&a:"<<&a<<endl;
return 0;
}
&ra的值:10
a:10
&ra的地址:0x7ffeefbff51c
&a:0x7ffeefbff51c
可以看到变量a和ra的地址相同,打个比方不管你操作国民老公还是操作王思聪,实际上操作的是同一个人
引用和变量之间是一种捆绑关系,下面我们来看一下改变a的值,ra会怎么变化?改变ra的值,a会发生什么变化?
#include <iostream>
using namespace std;
int main(int argc, const char * argv[]) {
int a=10;
int &ra =a;
cout << "&ra的值:"<<ra<<endl;
cout << "a:"<<a<<endl;
cout << "&ra的地址:"<<&ra<<endl;
cout << "&a:"<<&a<<endl;
a =100;
cout << ra <<endl; //100
ra =1000;
cout << a <<endl; //1000
return 0;
}
对引用的操作就是对变量的操作
引用一旦捆绑,终身不变
#include <iostream>
using namespace std;
int main(int argc, const char * argv[]) {
int a=10,b=1;
int &ra =a;
cout << "&ra的值:"<<ra<<endl;
cout << "a:"<<a<<endl;
cout << "&ra的地址:"<<&ra<<endl;
cout << "&a:"<<&a<<endl;
a =100;
cout << ra <<endl;
ra =1000;
cout << a <<endl;
cout << endl;
ra =b;
cout << "&ra的地址:"<<&ra<<endl;
cout << "&a:"<<&a<<endl;
cout << "ra的值:"<<ra<<endl;
cout << "a:"<<a<<endl;
return 0;
}
&ra的值:10
a:10
&ra的地址:0x7ffeefbff51c
&a:0x7ffeefbff51c
100
1000
&ra的地址:0x7ffeefbff51c
&a:0x7ffeefbff51c
ra的值:1
a:1
分析,ra
、a
的地址始终都没有发生改变。
后面的 ra=b
实际上发生了是赋值操作,把b=1
赋值给了ra