zoukankan      html  css  js  c++  java
  • 反汇编->C++引用与指针

    先看一段最简单代码
    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引用
    从反汇编结果可知.其实引用的底层实现就是指针常量罢了.不过引用是指针常量(必须初始化.不能只声明).
                                 指针可以被重新赋值而引用则总是指向最初或地的对象.指针跟引用一样可以改变 
    引用是有地址的,是一种编译器管理的指针,引用并不是只有一个别名,他其实说到底还是一个指针,只不过有些事情编译器替你做了而已








  • 相关阅读:
    MQ的导出备份
    js中this的使用
    wordpress目录文件结构说明
    css3 rem的用法
    初探Backbone
    call 和 apply使用
    公告栏放honehoneclock和喂小老鼠flash
    什么是好单位与坏单位
    常用正则表达式
    gulp入门教程
  • 原文地址:https://www.cnblogs.com/zengyiwen/p/5679157.html
Copyright © 2011-2022 走看看