函数调用机制图解

1).
每个函数都有一个自己的栈
当调用/执行一个函数时,就会开辟一个独立的空间(栈)
此处优先执行main栈
当接触到test时
会重新创建一个test栈,并且把6传递给test的n
当test栈运行完毕后,它会再次回到main栈(如果函数有返回值,则把返回值赋给接受的变量,再继续执行)
从调用test后继续运行(即如果test(num)的下一行加入printf,他会先打印n2,再打印main函数里面的printf)
同时test栈会自己销毁(取决于编译器)
1 #include <stdio.h> 2 3 4 //说明 5 //1.函数名字test 6 //2.函数没有返回,void 7 //3.完成功能:传入一个数+1 8 void test(int n){ 9 int n2 = n + 1; 10 printf("n2=%d", n2); 11 } 12 void main(){ 13 int num = 6; 14 test(num); 15 }
2)
1 #include <stdio.h> 2 3 //说明 4 //1.函数名字getSum 5 //2.函数有返回,int 6 //3.完成功能:传入两个数后相加 7 int getSum(int n1, int n2){ 8 return n1 + n2; 9 } 10 void main(){ 11 int res = getSum(1, 9); 12 printf("res=%d", res); 13 }
注意类型转换!!!int double等
同时也要注意接受的变量的类型
举例检测
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)