2 qq 36187689 qq_36187689 于 2016.09.22 12:39 提问

变量赋值的底层实现。

C语言中,相同类型的变量赋值底层是怎么实现的比如:
int a=3;
int b;
b=a;
内存操作的实现

3个回答

shihengzhen101
shihengzhen101   Rxr 2016.09.22 13:47
已采纳

其实就是在内存里完成值的传递

 void main()
{
00FE14A0  push        ebp  
00FE14A1  mov         ebp,esp 
00FE14A3  sub         esp,0D8h 
00FE14A9  push        ebx  
00FE14AA  push        esi  
00FE14AB  push        edi  
00FE14AC  lea         edi,[ebp-0D8h] 
00FE14B2  mov         ecx,36h 
00FE14B7  mov         eax,0CCCCCCCCh 
00FE14BC  rep stos    dword ptr es:[edi] 

    int a=3;
00FE14BE  mov         dword ptr [a],3 
    int b;
    b=a;
00FE14C5  mov         eax,dword ptr [a] 
00FE14C8  mov         dword ptr [b],eax 
}
lx624909677
lx624909677   Ds   Rxr 2016.09.22 13:43

先查看a地址指向内存区域中的内存,然后将a指向内存区域中的内存拿 出来,再放到b指向的内存区域中,具体的过程可以跟下对应的对边代码,会调用mov这些命令来完成内存上的操作

qq_36187689
qq_36187689   2016.09.23 09:54

谢谢了图片说明图片说明图片说明图片说明图片说明

Csdn user default icon
上传中...
上传图片
插入图片