关于指针和引用,我的目前的理解

本文解释了在C++、Java和C#中,引用被视为变量的别名,不直接分配内存,而指针分配并存储地址。编译器隐藏了底层指针细节,用户仅看到引用。
摘要由CSDN通过智能技术生成

  在c++,java,c#等语言上,编译器让我们看到的是,引用就是一个变量的别名,不分配内存空间,而指针分配内存空间,并且可以存储变量的地址。但是实际上编译器是把分配给引用的内存空间给屏蔽掉了,让我们访问不到。

  例如: int a=10, int& ref = a;   (等价于 int* const ref = &a;这是编译器内部做的处理),我们访问ref 得到10,实际编译器是执行的*ref 得到10,我们访问&ref 得到a的地址,实际编译器是执行ref得到a的地址。这样一来,我们看不到实际内部作为指针的ref,也就是我们称之为别名的ref,被分配到的内存地址,也就认为它只是个别名,不占内存空间。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值