C++函数调用与栈的理解

需积分: 50 26 下载量 56 浏览量 更新于2024-08-18 收藏 4.92MB PPT 举报
"本文主要介绍了C++中的栈在函数调用中的应用,以及东南大学C++课程的相关内容,包括课程的目标、章节概览和重点知识领域。" 在计算机科学中,栈是一种特殊的线性数据结构,遵循“后进先出”(LIFO)原则。在C++中,栈在函数调用中扮演着至关重要的角色。当一个函数被调用时,系统会自动维护一个称为调用栈的栈结构。这个过程可以按照以下步骤理解: 1. 当`main()`函数调用`fun()`函数时,`fun()`函数的入口地址(返回地址)、参数和当前的执行环境(也称为当前现场)被压入栈中。这是步骤①和②。 2. `fun()`函数开始执行,其内部的局部变量也会在这个栈上分配空间。执行到`fun()`函数的最后,如果还有其他操作,如递归调用或嵌套函数调用,这些新的调用信息会被压栈。 3. 当`fun()`执行完毕准备返回时,它首先会清除其内部的局部变量,即出栈,这是步骤④。然后恢复调用它的函数(这里是`main()`)的现场,即出栈`fun()`的返回地址和参数,这是步骤⑥。 4. 最后,`fun()`函数返回,控制权回到`main()`函数,继续执行`fun()`返回后的下一条指令,这是步骤⑧。 东南大学的C++课程涵盖了从基础到高级的多个主题,旨在帮助学生建立起计算机程序设计的概念体系,理解和掌握C++语言。课程包括以下几个关键部分: - 基本的计算机程序设计概念和方法,为初学者打下坚实基础。 - C++语言的基本语法和语义,包括数据类型、表达式、输入/输出操作、控制结构和自定义数据类型。 - 函数的使用,包括函数的定义、内联函数、默认参数、重载和函数模板,这些都是C++中实现模块化和代码复用的重要工具。 - 面向对象编程思想的介绍,理解面向对象软件开发的特点,学习如何创建类和对象,使用构造函数和析构函数,以及类的组合和类模板,这些都是C++的核心特性。 通过这门课程的学习,学生不仅能够掌握C++语言,还能逐步提升编程和调试能力,为后续的面向对象编程和软件开发打下坚实的基础。