|
发表于 2020-7-31 10:38:01
|
显示全部楼层
本帖最后由 405794672 于 2020-7-31 10:55 编辑
我都搞糊涂了。。。这么写吧!
看看到底是怎么回事。
- void a(int m,int n)
- {
- int c,d;
- printf("局部变量c的地址:%p\n",&c);
- printf("局部变量d的地址:%p\n",&d);
- print("int的尺寸:%d\n",sizeof(int));
- printf("参数m的地址: %p\n",&m);
- printf("参数n的地址: %p\n",&n);
- }
- void main()
- {
- int i=0, j=0;
- printf("局部变量i的地址:%p\n",&i);
- printf("局部变量j的地址:%p\n",&j);
- printf("函数a的地址:%p\n",a);
- a(i,j);
- }
复制代码
这个也难发现。始终是四个字节一起的。入栈顺序是从右边往左的。也就是说先是N入栈,再是M入栈。M地址比N要小。
如果是汇编就好办了。还有,可以调试,在VS可以看到各种变量的地址,每一步,相应的出现各种变化。比如赋值,你可以看到哪一步后,变量值的变化 |
|