- 2
- 0
- 约1.92千字
- 约 6页
- 2026-04-27 发布于江苏
- 举报
函数执行流程
C语言中,函数的活动和栈有关。
栈是后进先出的数据结构。栈是由底端向顶端生长,栈顶加入数据称为压栈、入栈,栈顶弹出数据称为
出栈。
10
11
12
main调用,在栈顶创建栈帧
a=1,在main栈帧中增加a,堆里增加1,a指向这个1
b=add(a,2),等式右边先执行,add函数调用
add调用,在栈顶创建栈帧,压在main栈帧上面
add栈帧中增加2个变量,x变量指向1,y指向堆中新的对象2
在堆中保存计算结果3,并在add栈帧中增加r指向3
print函数创建栈帧,实参r被压入print的栈帧中
print函数执行完毕,函数返回,移除栈帧
add函数返回,移除栈帧
main栈帧中增加b指向add函数的返回值对象
main函数返回,移除栈帧
问题:如果再次调用main函数,和刚才的main函数调用,有什么关系?
每一次函数调用都会创建一个独立的栈帧入栈。
因此,可以得到这样一句确的话:哪怕是同一个函数两次调用,每一次调用都是独立的,这两次调
用没什么关系。
递归
函数直接或者间接调用自身就是递归
递归需要有边界条件、递归前进段、递归返回段
递归一定要有边界条件
您可能关注的文档
- 高性能混凝土施工方案及工艺方法.docx
- 2026年身体乳美白保湿体验创新报告.docx
- 2025年设备维护与维修技术手册.docx
- CN119735655A 一种从VLPs制剂中提取膜蛋白的方法 (武汉华美生物工程有限公司).pdf
- 公司年度降本增效改善活动计划书.docx
- CN119703131A 一种镍钛合金的高通量激光增材制造方法 (钢铁研究总院有限公司).pdf
- GBT 46685-2025 生鲜食用农产品包装技术指南PPT课件.pptx
- CN119735642A 特异性抗桥梁分子itsn1-s蛋白315位丝氨酸磷酸化抗体及制备方法与应用 (天津市肿瘤医院(天津医科大学肿瘤医院)).pdf
- 2026年量子加密通信报告.docx
- CN119703158A 一种零件锥度精密加工设备及其加工工艺 (苏州工业园区叶饰恒精密机械有限公司).pdf
原创力文档

文档评论(0)