C程序设计课程中堆与栈.docVIP

  • 0
  • 0
  • 约6.07千字
  • 约 14页
  • 2018-08-11 发布于福建
  • 举报
C程序设计课程中堆与栈

C程序设计课程中堆与栈   摘要:堆和栈是C语言程序设计课程中的两个重要概念,在程序设计和代码分析中应用广泛。文章首先介绍程序运行时的内存空间分布,包括代码区、全局变量区、栈和堆,然后讨论栈的基本原理和特点以及栈在函数调用执行过程中的应用,然后通过例子演示栈在代码分析中的作用,详细阐述在递归函数调用的执行过程中控制流和数据流的变化过程,最后介绍堆的基本概念和应用特点。   关键词:程序设计;堆;栈;函数调用;递归   0 引 言   在讲授C语言程序设计课程时,教师会碰上两个颇有挑战性的概念:堆( heap)与栈( stack)。一方面,这两个概念非常重要,在程序设计和代码分析中经常要用到,只有理解了这两个概念,才能对程序运行时的一些规律和特点有着更深刻的认识;另一方面,这丽个概念又有一定的难度,涉及程序设计课程以外的一些知识,如操作系统和编译原理等,因此教师不太好讲授这部分内容,学生也不太容易理解。   从大的方面来说,堆和栈实际上是属于操作系统课程的内容,描述的是一个进程的内存空间分布情况。所谓进程,即一个程序的一次运行。当磁盘上的一个可执行程序运行时,它就会被装入到计算机的内存,在内存中运行。一般来说,进程的内存空间分布情况如图l所示。   从图l可以看出,当一个可执行程序(EXE文件)被装入到内存时,它主要包括两个部分:代码和数据。对于代码,它会被装入到内存中

文档评论(0)

1亿VIP精品文档

相关文档