#include <stdio.h>
#include <iostream>using namespace std;
void  func(int p1, int p2, int p3)
{int a = p1;int b = p2;int c = p3;std::cout << "函数参数入栈顺序(栈在内存中向上伸长):从右到左" << std::endl;std::cout << "&p1:" << &p1 << std::endl;std::cout << "&p2:" << &p2 << std::endl;std::cout << "&p3:" << &p3 << std::endl;std::cout << std::endl;std::cout << "函数内局部变量入栈顺序(栈在内存中向上伸长):从下到上" << std::endl;std::cout << "&a:" << &a << std::endl;std::cout << "&b:" << &b << std::endl;std::cout << "&c:" << &c << std::endl;
}int main()
{func(2, 3, 4);return 0;
}

结果:

结论:谁先入栈谁的地址大

(1)、函数的参数入栈顺序:从右向左。

(2)、函数内的局部变量入栈顺序:按照定义时的顺序。

函数局部变量和函数的参数在栈中的布局相关推荐

  1. php可变方法,php 函数使用可变数量的参数方法

    php 函数使用可变数量的参数方法 发布于 2017-08-07 16:57:47 | 89 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Pr ...

  2. Webbench学习笔记二:getopt_long函数和build_request函数

    目录 概述 1. main函数结构 2.getopt_long函数 2.1. 函数调用的几个参数 2.1.1. argc 2.1.2. argv 2.1.3. optstring 2.1.4. lon ...

  3. python内置函数sum_Python内置函数sum____用来返回数值型序列中所有元素之和。

    [单选题]关于函数参数传递中,形参与实参的描述错误的是( ). [判断题]PythonModuleDocs是Python的帮助文档. [单选题]以下关于Python的说法中正确的是哪一项? [判断题] ...

  4. java 方法执行结束局部变量释放_JAVA-方法在执行过程中,JVM的内存分配和变化情况,栈(stack)的情况浅析...

    方法在执行过程中,在JVM中的内存是如何分配的?内存是如何变化的? 一.方法只定义不调用,是不会被执行的,并且在JVM中也不会给该方法分配"运行所属"的内存空间.只有在调用这个方法 ...

  5. python默认参数举例_Python中的默认参数实例分析

    本文研究的主要是Python中的默认参数的相关内容,具体如下. 熟悉C++语言的可以知道,C++语言中的默认参数是写在函数声明中的,为语法糖,与函数的调用无关,是在函数调用的时候由编译器补齐参数然后进 ...

  6. ebp 函数堆栈esp_函数参数压栈,栈帧ebp,esp怎样移动的?

    压栈一次esp-4,ebp不变 esp是栈顶指针寄存器,堆栈操作只和esp有关 比如有一个函数a,有两个参数,一般是这样的 PUSH 1 参数2压栈,esp-4 PUSH 2 参数1压栈,esp-4 ...

  7. C语言函数参数压栈顺序为何是从右到左?

    #转载自:http://blog.csdn.net/jiange_zh 上学期学习了汇编语言,并在操作系统实验中使用了汇编+C语言混合编程,中间也了解了一些C语言与汇编语言的对应关系. 由于汇编语言是 ...

  8. C++ 函数参数入栈方式与调用约定

    代码开发运行环境: VS2017+Win32+Debug 1.调用约定简介 实现函数调用,除了需要根据函数名称获取函数的入口地址外,还要向函数传递合适的参数以及结束时清理堆栈.这些可以有不同的实现方式 ...

  9. c语言函数参数压栈,函数调用压栈 浅谈C语言函数调用参数压栈的相关问题

    想了解浅谈C语言函数调用参数压栈的相关问题的相关内容吗,在本文为您仔细讲解函数调用压栈的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:函数调用压栈,下面大家一起来学习吧. 参数入栈的顺序 ...

最新文章

  1. 二叉树:最近的公共祖先 Lowest Common Ancestor of a Binary Tree
  2. 京东金融科技学堂开班,AI 在金融云上有了新成果
  3. 关于java中的字符流的一个使用例子
  4. Android开发--多线程中的Handler机制/Looper的介绍
  5. tomcat server.xml各个端口的作用
  6. CVPR 2020:如何写一篇好论文?
  7. linux 产生0~100内的随机数
  8. VTK:规则多边形源用法实战
  9. Comet:基于 HTTP 长连接的“服务器推”技术解析
  10. HTML入门第一和第二章
  11. Python datetime isocalendar()方法与示例
  12. 制作多系统启动盘教程_制作U盘启动盘教程
  13. 如何在指定的内容中找出指定字符串的个数
  14. VAssistX的卸载方法
  15. ASP.NET实现验证码图片
  16. 迅雷的php文件_使用迅雷下载.php文件的方法(Picjumbo可用)
  17. Linux虚拟机下WWW(HTTP)服务器的搭建与使用(详细)
  18. 计算机桌面设置怎么还原,怎么把电脑桌面还原
  19. 爱创课堂每日一题第五十六天-对前端界面工程师这个职位是怎么样理解的?它的前景会怎么样?...
  20. 中山大学羽毛球场馆自动订场(Python+selenium+百度aip)

热门文章

  1. 求二叉树中两个节点的最远距离
  2. 【svn】设置过滤文件
  3. VARIANT变体类型数据
  4. MySQL同步状态双Yes的假象及seconds_behind_master的含义
  5. Linux 下的多线程下载工具
  6. 社交网站与网民隐私安全报告(2009)
  7. 一键了结CUP100%问题
  8. 价值投资/指标选股(akshare)
  9. java线程实现及线程池的使用
  10. 学成在线--2.CMS前端页面查询开发