C语言函数的其他重要部分学习

A部分学习函数中的全局变量和部分变量

B部分学习函数  函数的嵌套和函数的递归(一般不推荐递归)

 

A部分的学习:

全局变量和局部变量的作用域不同

通常采用 局部变量+传参的方式 YYDS!

全局变量,头文件下面就定义的变量,所有的函数都可以操作并修改,具有潜在的危险,即多线程操作内容,导致危险的发生。

局部变量,作用域范围较小,仅被位于局部变量下的函数调用。

函数返回值只能返回一个值,但想实现理论上的多个返回值可采取以下的方式:

1.直接法返回多个数值里的一个到main函数中

函数返回值 返回一个 

2.间接法返回多个数值里的另一个main函数中

通过全局变量的方式。第一步,即在被调函数中操作   全局变量  得到想要的结果。第二步,在main函数值得到返回值的同时也同样的显示内容/结果    

#include <stdio.h>

int max;……………………………………………全局变量

int arr [3] ={1,7,3};

floalt Average(int arr[     ]  ,int len)

{      int sum=0;

     for遍历数组相加得到sum                                     for遍历数组比较得到max

  此时该函数中有两个数值sum/len和max需要返回,但函数返回值只能是一个,另一个则采用全局变量的方式,间接返回main函数

    return sum/len

}

 main()

      result =Average(arr[] ,  len);

     printf("数组中数据的平均值是%lf,最大的数      据是%d",result,max);

 

 }

 

 

 

 

 

 

B部分的学习

函数的嵌套,即层层深入,不断调用不同的函数。不断的调用下一个函数,第一个函数里调用第二个函数,第二个里在调用所需的第三个函数,

函数的递归,不断调用相同的函数,直到满足递归停止的条件(核心存在if…else语句)

GetAge(num){

if (num==1){

age = 10;

}else{

age=GetAge[num-1]+2;

return age;

}

main (){

int result;

result = GetAge(num);

}

函数的嵌套

WIFIGOT函数中需要调用UartTime0函数,

UartTime0函数中又会调用Delay50us()函数

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值