右值引用
// 右值引用 int&& rret = 1 2; 00D01FDF mov dword ptr [ebp-18h],3 00D01FE6 lea eax,[ebp-18h] 00D01FE9 mov dword ptr [rret],eax rret = 10; 00D01FEC mov eax,dword ptr [rret] 00D01FEF mov dword ptr [eax],0Ah
左值引用
// 左值引用 int& lret = rret; 00D01FF5 mov eax,dword ptr [rret] 00D01FF8 mov dword ptr [lret],eax lret = 10; 00D01FFB mov eax,dword ptr [lret] 00D01FFE mov dword ptr [eax],0Ah
指针
// 指针 int* retp = &rret; 00D02004 mov eax,dword ptr [rret] 00D02007 mov dword ptr [retp],eax *retp = 10; 00D0200A mov eax,dword ptr [retp] 00D0200D mov dword ptr [eax],0Ah
变量
int a = rret; 00962013 mov eax,dword ptr [rret] 00962016 mov ecx,dword ptr [eax] 00962018 mov dword ptr [a],ecx a = 10; 0096201B mov dword ptr [a],0Ah
总结
看上去 [左值引用]汇编和 [指针]汇编一样。