加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

引用是否在C中记忆?

发布时间:2020-12-16 09:39:45 所属栏目:百科 来源:网络整理
导读:我已经阅读了很多关于这个问题的文章,从中我得到的引用只是别名而且它们不消耗任何内存.编译器用指向变量的地址替换引用. 任何人都可以解释下面的例子会发生什么.编译器如何使用参考ri? int main(){ int *pi = new int(50); int ri = *pi; ri = 30; cout "v
我已经阅读了很多关于这个问题的文章,从中我得到的引用只是别名而且它们不消耗任何内存.编译器用指向变量的地址替换引用.

任何人都可以解释下面的例子会发生什么.编译器如何使用参考ri?

int main()
{  
    int *pi = new int(50);
    int &ri = *pi;
    ri = 30;
    cout << "val = " << ri << "," << *pi << endl;
}

它给了我输出:

val = 30,30

解决方法

int *pi = new int(50);

       +----+
pi --> | 50 |
       +----+


int &ri = *pi;

        +----+
pi  --> | 50 |    ri = 50,same as *pi,which is 50
        +----+

ri = 30;      now the contents of what pi points to i.e. *pi is replaced with 30

        +----+
pi  --> | 30 |
        +----+

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读