栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++ 左值引用、右值引用和指针在汇编层面的差别

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++ 左值引用、右值引用和指针在汇编层面的差别

右值引用
	// 右值引用
	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
总结

看上去 [左值引用]汇编和 [指针]汇编一样。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/982456.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号