函数调用机制图解

 

 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等

同时也要注意接受的变量的类型

 


 

举例检测

 

posted @   Morning枫  阅读(86)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示