函数调用机制图解

 

 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 @ 2022-10-03 22:05  Morning枫  阅读(98)  评论(0)    收藏  举报