引用操作

引用和变量,对象之间是一种关联关系。引用通俗一点就是给取个小名

#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

分析,raa的地址始终都没有发生改变。 后面的 ra=b实际上发生了是赋值操作,把b=1赋值给了ra

results matching ""

    No results matching ""