支持子程序调用的数据结构是是栈,栈支持子程序调用。
关于栈:
栈是一种只能在一端进行插入或删除的线性表,在主程序调用子函数时要保存主程序的当前状态,符合栈的特性。栈是一种只能在一端进行插入或删除的线性表。
栈是一种具有后进先出性质的数据结构,也就是说后存放的先取,先存放的后取。这就如同要取出放在箱子里面底下的东西(放入的比较早的物体),首先要移开压在它上面的物体(放入的比较晚的物体)。
内存中的栈区处于相对较高的地址以地址的增长方向为上的话,栈地址是向下增长的。栈中分配局部变量空间,堆区是向上增长的用于分配程序员申请的内存空间。另外还有静态区是分配静态变量,全局变量空间的。只读区是分配常量和程序代码空间的。
由于栈上的空间是自动分配自动回收的,所以栈上的数据的生存周期只是在函数的运行过程中,运行后就释放掉,不可以再访问。栈在Windows下,栈是向低地址扩展的数据结构,是一块连续的内存的区域。
1.践树。
2.队列。
3.二叉树。
栈——因为递归调用子程序的时候就是先入后出的而且是线性的。
优秀的程序员应该有自己良好的风格和习惯
函数代表的是一个独立的功能,可以被重复使用,她有她独立的巨大意义,也能让人看得清晰明了。应该养成这种习惯,哪怕代码只有两三行。
在学习中,我们容易养成程序就写一个函数的习惯,这种代码只有自己容易看懂,对于别人就没有了存在的意义,只应在验证性的小程序中使用,以节省时间。而大工作量的或者比较正式的程序都应该独立成函数甚至使用多个文件,这会让你终身受益!
最后代码的好坏不是用长短来衡量的,商用的代码代表着安全和稳定,其主要代码往往只有很少,大部分的代码都是为防止意外而设,有些代码甚至让人觉得多余。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)