对virtual的理解和使用场合_普通、指针、引用变量:内存单元的地址、值属性的显式、隐式使用...

1 内存单元的地址、值属性

程序的代码和数据要存储到内存才可以被执行。内存单元同时具有地址属性和值属性。

地址属性:每一个字节(8个位)都有一个内存地址对应,变量名就是对地址的命名,让其更好理解、记忆和使用;

值属性:一串的0、1二进制,按数据类型确定其长度和解码方案;

af0d46f55feab8ed0199d8405c7ef0ef.png

2 普通、指针、引用变量对地址、值属性的显式、隐式使用

普通、指针、引用变量的区别在于对地址、值属性的显式、隐式使用的方式不同:

5f722e0e6f36e516221aa81419b6b17b.png

3 引用的本质是一个实现的自动解引用指针常量

引用可以理解为其引用的变量的别名,但本质是一个实现的自动解引用指针常量。

在函数定义中,引用在形参在声明时,显式使用地址属性,类似指针变量的使用。在函数体中,显式使用变量(别名)的值属性,类似于普通变量,因为由编译器实现了自动解引用。

引用的常量属性,必须在声明时初始化(也就再没有机会做其它变量的别名或引用了),也因为其具有自动解引用的属性,声明(包括初始化)以外的使用都是显式对应其指向的地址的值的引用(相当于直接使用其引用(或指向)的普通变量)。

因为这些属性,相对于指针,引用更安全,使用更简洁。当然,引用不能替代指针,指针有自己的使用场合,特别是当其不断需要变更指向时。

#include using namespace std;void swap(int& a,int&b){int t;t=a;a=b;b=t;}void main(){int i=3;int j=5;swap(i,j);cout<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值