06/05/2016引用变量、指针升级

案例升级:
int b = 1;
int c = 2;
int & i = b;
i = c;
int *p = &b;
p = &c;
p = &i; //&,将打破引用变量的同名,不同的地址,取得是原来引用变量的地址


在我学习上学的时候认为b就是一个变量,就是一个内存中一个单元,这个并没有什么错误.
但是这个变量的范围有什么决定呢?由int形这个编译器关键字决定的,其范围为0-FFFFFFFF的范围:(这里将int形看成4字节)

  • 1值范围

    我们的指针变量 呢?其实它的值也是在这个范围,但是我们一般给指针变量的值非常的大,原因就是编译器给变量的地址很大,于是我们的指针变量的值很大,引用变量同指针变量内存同指针,但是他是写死的。

  • 2 引用变量

  • 引用变量i还是那个内存变量,但是我们给它语义是不一样的,(就是编译它的指令不一样),int & 的变量,编译器的时候变量与另外一个变量的关系完成,这种关系就是固定的,是一中同生共死的关系,不会改变关联关系,于是我们就用int &的变量名来代贴*p,隐藏了变量的真实内存,直接用目的变量内存来表示,导致了同一个变量名,但是不同的内存(初始化的时候,变量名代表的是变量的真实地址,其他操作中基本上是,变量名代表的是引用变量A内存指向变量B的内存,《变量名代表的是变量B的内存》,但是&引用变量名,将打破这一关系,&引用变量名取得是引用变量A内存的地址),这些事C++中最坑之一处,导致后面重载一系列的问题,

  • 3指针

  • 指针变量就是内存变量,我们给他的编译指令跟普通的变量是不一样的,int 的变量,编译器的时候变量与另外一个变量的关系完成,但是这种关系不是固定的,于是我们出现了int 变量就是实际的内存,我们并没有隐藏,而是将真正将指针变量露了出来
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值