探索C语言中引用实质的实践

无意中看到一篇文章讲到对于引用的本质的讨论,其中提出了一个很有意思的结论,引用是一个常量指针,于是我进行了一番探索

    int a = 1;
    int &b = a;
    cout<<"========="<

输出内容如下:

=========
a的地址:0x7ffeefbff214
b:3
b的地址:0x7ffeefbff214
b的地址取值:3
=========
a的地址:0x7ffeefbff214
b:4
b的地址:0x7ffeefbff214
b的地址取值:4
=========
a的地址:0x7ffeefbff214
b:5
b的地址:0x7ffeefbff214
b的地址取值:5

我个人理解:引用b是一个常量指针,b指向的地址是固定的,这个地址中存储的变量是随赋值的变化而变化,int &b = a 这个过程实际上是将变量a的地址赋值给一个常量指针b,b = 5 这个赋值的过程应该看成 *&b = 5,引用b的有效期就是a变量的有效期,大概就这样了,你明白了吗?

你可能感兴趣的:(探索C语言中引用实质的实践)