美文网首页
探索C语言中引用实质的实践

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

作者: abs_ | 来源:发表于2021-03-04 17:31 被阅读0次

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

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

    a = 3;
    cout<<"a的地址:"<<&a<<endl;
    cout<<"b:"<<b<<endl;
    cout<<"b的地址:"<<&b<<endl;
    cout<<"b的地址取值:"<<*&b<<endl;

    cout<<"========="<<endl;

    a = 4;
    cout<<"a的地址:"<<&a<<endl;
    cout<<"b:"<<b<<endl;
    cout<<"b的地址:"<<&b<<endl;
    cout<<"b的地址取值:"<<*&b<<endl;

    cout<<"========="<<endl;

    b= 5;
    cout<<"a的地址:"<<&a<<endl;
    cout<<"b:"<<b<<endl;
    cout<<"b的地址:"<<&b<<endl;
    cout<<"b的地址取值:"<<*&b<<endl;
 

输出内容如下:

=========
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语言中引用实质的实践

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

  • C++程序设计学习笔记:1 从C走进C++ 引用

    在C++语言中,“引用”相当于给变量起了一个别名。C语言并没有引用这个概念,C语言用指针实现类似的功能。 引用的语...

  • c语言中b=a的实质

    1.a、b为同一类型变量(包括指针类型):a的值赋给b2.a、b为不同类型变量(比如int与double,void...

  • C语言变量的内存实质

    一、先来理解C语言中变量的实质 要理解C指针,我认为一定要理解C中“变量”的存储实质,所以我就从“变量”这个东西开...

  • 夜未央02

    不积跬步,无以至千里 今天学习了C++中的引用,其用法类似但不同于C语言中的指针,通过对比学习和大量代码实践,我很...

  • 彻底搞定C语言指针——初学者的救赎

    1.语言中变量的实质 要理解C指针,我认为一定要理解C中“变量”的存储实质, 所以我就从“变量”这个东西开始讲起吧...

  • Objective-C内存管理

    Objective-C的内存管理实质上就是引用计数。 从前是手动引用计数(MRC),现在是自动引用计数(ARC)。...

  • C语言中结构变量的引用

    结构类型的引用包括对结构变量的引用和对结构变量中成员的引用两个方面a.对结构变量的引用包括1.结构变量的赋值操作2...

  • Objective-C中的值传递和引用传递

    值传递::Pass By Value引用传递:Pass By Reference 一、C语言中的参数传递 1、传值...

  • c++之reference(引用)

    ■在C语言中,使用指针(Pointer) 可以间接获取、修改某个变量的值■在C+ +中,使用引用(Referenc...

网友评论

      本文标题:探索C语言中引用实质的实践

      本文链接:https://www.haomeiwen.com/subject/crmkqltx.html