您的位置:首页 > 编程语言 > C语言/C++

C++之引用揭秘

2015-11-30 16:57 323 查看
测试代码

#include <iostream>

#include <stdio.h>

using namespace std;

void fun(int &b)

{

    int a = b;

    cout << a;

}

int main()

{

    int a = 8;

    fun(a);

    return 0;

}



第二条汇编指令将8这个值存储到变量a在栈中的空间。第三条指令将变量a的地址放到寄存器eax中。



可以看到,eax的值为0x29fefc,这个地址为虚拟地址空间的地址。光标处汇编指令将该值压入栈中,作为调用函数fun()的参数

顺表提一下,为什么指针总是4字节大小,32位机器,内存最大4G,32根地址线,所以就是4个字节。

在调用fun函数后,



如图,光标处,即取出参数值,该值为变量a的地址,下一条指令根据地址取出变量a的值。由此可见,引用和指针本质上上是相同的。

但是引用更为安全。原因很简单了,用一个指针像是用一个变量一样方便,不用*取值操作。CPU的指令无非是读内存,写内存,逻辑,算数,读写寄存器。万变不离其宗
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++ 汇编语言 引用