先看一段最简单代码

  1. #include<iostream>
  2. #include<stdlib.h>
  3. using namespace std;
  4. int main()
  5. {
  6. int temp = 10;
  7. int *point = &temp;
  8. int &ref = temp;
  9. system("pause");
  10. }
反汇编结果
  1. int temp = 10;
  2. 012718E8 mov dword ptr [temp],0Ah
  3. int *point = &temp;
  4. 012718EF lea eax,[temp] ;将temp变量的地址赋给eax
  5. 012718F2 mov dword ptr [point],eax ;将eax的值赋给point指针
  6. int &ref = temp;
  7. 012718F5 lea eax,[temp] ;将temp变量的地址赋给eax
  8. 012718F8 mov dword ptr [ref],eax ;将eax的值赋给ref引用
从反汇编结果可知.其实引用的底层实现就是指针常量罢了.不过引用是指针常量(必须初始化.不能只声明).
                             指针可以被重新赋值而引用则总是指向最初或地的对象.指针跟引用一样可以改变 
引用是有地址的,是一种编译器管理的指针,引用并不是只有一个别名,他其实说到底还是一个指针,只不过有些事情编译器替你做了而已








最新文章

  1. Yii2中多表关联查询(join、joinwith)
  2. C++ 中 int 转string, 以及10进制转2进制
  3. Boost练习程序(multi_index_container)
  4. Shell中set用法(转载)
  5. js函数、表单验证
  6. MySQL表设计基础
  7. system strategies of Resources Deadlock
  8. iOS网络基础
  9. [题解]N 皇后问题总结
  10. tex中pdf外链
  11. Confluence 6 使用 JConsole 监控本地 Confluence
  12. 03. Pandas 2| 时间序列
  13. c# 号码记录,车友
  14. MySQL:字符串字段加索引
  15. oracle 实例名,数据库名概念
  16. 【Python】生成词云
  17. Installing Oracle Database 12c Release 2(12.2) RAC on RHEL7.3 in Silent Mode
  18. java插件之Lombok
  19. 以太坊go-ethereum常见问题汇总
  20. storm配置:如何解决worker进程内存过小的问题

热门文章

  1. Linux下手动备份还原硬盘主引导记录MBR跟硬盘分区表DPT教程
  2. python爬虫用到的一些东西
  3. Qt概念和快捷键
  4. 【android】签署应用采用相同证书的用处
  5. crm项目之整体内容(一)
  6. 命令行执行Qt程序
  7. Android后台的linux一直保持唤醒状态,不进入睡眠
  8. ATM源码
  9. python 查看异常
  10. Python学习-day10 进程