引用

2020阅读 0评论2014-03-02 qinchaowhut
分类:C/C++

//参考《C++反汇编与逆向分析技术揭秘》
//在反汇编下,没有引用这种数据类型。
//在C++中,引用和指针没有分别,只是引用是通过编译器实现寻址的,而指针需要手动寻址。
//C++为了简化指针操作,对指针的操作进行了封装,产生了引用类型。引用类型在C++中被描述为变量的别名。实际上,引用类型就是指针类型,只不过它用于存放地址的内存空间对使用者而言是隐藏的。
----- -----------------------------------------------------------------     

  1. #include<iostream>
  2. using namespace std;

  3. struct Test
  4. {
  5.     Test():a(1),b(2)
  6.     {
  7.     }
  8.     int a;
  9.     int b;
  10. };
  11. int main()
  12. {
  13.     Test t;
  14.     Test &x=t;
  15.     return 0;
  16. }
----------------------------------------------------------------------     
C++对应的汇编代码:
  1. Test t;
  2. 00401038 lea ecx,[ebp-8]
  3. 0040103B call @ILT+10(Test::Test) (0040100f)
  4. 15: Test &x=t;
  5. 00401040 lea eax,[ebp-8]
  6. 00401043 mov dword ptr [ebp-0Ch],eax
  7. 16: return 0;
  8. 00401046 xor eax,eax


上一篇:第九章
下一篇:第三章