[C++对象模型]函数调用

代码如下:

 

Code
int Add(int x, int y)
{
    
return x + y;
}

void main()
{
    
int *pi = new int(10);
    
int *pj = new int(20);
    
int result = 0;
    result 
= Add(*pi,*pj);
    delete pi;
    delete pj;
}

 

对上面的代码,我们分为四步,当然我们只画出了我们的代码对堆栈的影响,其他的我们假设它们不存在,哈哈!

第一,int *pi = new int(10);   int *pj = new int(20);   int result = 0; 堆栈变化如下:

[C++对象模型]函数调用_第1张图片

第二,Add(*pi,*pj);堆栈如下:

[C++对象模型]函数调用_第2张图片

第三,将Add的结果给result,堆栈如下:

[C++对象模型]函数调用_第3张图片

第四,delete pi;    delete pj; 堆栈如下:

[C++对象模型]函数调用_第4张图片

第五,当main()退出后,堆栈如下,等同于main执行前,哈哈!

[C++对象模型]函数调用_第5张图片

你可能感兴趣的:([C++对象模型]函数调用)