常引用的编译器实现原理

来源:互联网 发布:软件数据接口开发合同 编辑:程序博客网 时间:2024/05/28 15:07
 int &a = 100;//不能引用右值,因为右值没有内存。错误的表达式//改正方法是,使用const int & c = 10;//原因是在编译器中,会产生临时量保存10//然后对临时量地址进行引用 /*汇编代码:const int&  a = 100;00BA5D98  mov         dword ptr [ebp-18h],64h//100赋值到临时量00BA5D9F  lea         eax,[ebp-18h]//地址赋值到eax寄存器00BA5DA2  mov         dword ptr [a],eax//引用临时量的地址*///在内存地址0x0018ff44写一个整数,10int *const &p = (int*)0x0018ff44;//地址也是一个右值,没有内存*p = 10;//必须使用常引用

原创粉丝点击