C语言(长期更新)
第6讲:函数(二)
++跟着潼心走,轻松拿捏C语言,困惑通通走,一去不回头~欢迎开始今天的学++ ++习内容,你的支持就是博主最大的动力++ 。
知识回顾
++今天我们来学习新课函数的内容,坐稳了,我们发车,gogogo!++
6.5 数组作为函数参数
前面我们使用的参数都是变量,那么数组是否也可以作为参数使用呢?当然可以。
6.5.1一个例子
下面我们看一个🌰
将一个数组中元素全置为-1,再打印出来
首先我们进行任务分解 ,因为函数的本质就是一个一个执行分任务的子程序
置为-1需要一个函数set_arr(函数名最好反应其功能)
打印需要另一个函数print(也可在主函数main函数直接打印,此处方便练习)

建议先写主函数,再根据需要拆解任务,写对应的函数
6.5.2 几个关键点
需要注意的是
1. 一一对应 函数形参个数需和实参个数匹配
2. 形参数组大小 一维可省略不写,二维行可省略,列不行
3. 数组传参,形参不会创建新数组
也就是说,形参操作的数组和实参数组是一个数组
地址相同,只是在函数运行是换了个名字
我们尝试监测上面的代码,就会发现arr1 arr2 arr3 地址是一样的
7. 嵌套调用
函数之间的相互调用
举个🌰
计算某年某月多少天
1.任务分解
首先确定月份,其次,是2月,看是不是闰年
2.函数实现
get_days_of_month();
is_leap_year();

值得注意的是,函数可以嵌套调用,但不可以嵌套定义
8.链式访问
链式访问就是像链条一样,环环相扣,上一个函数的返回值作为下一个函数的参数使用

上面用了两行代码完成打印字符串长度的任务
使用中间变量len储存strlen返回值,再作为printf参数调用
而使用链式访问,直接作为参数,一行就可

9.printf函数的返回值

print函数返回打印的数字或字符的总数,返回类型为int
下面我们看一个有趣的代码

10.函数定义和声明
10.1单个文件
函数的调用⼀定要满足,先声明后使用;
函数的定义也是⼀种特殊的声明,所以如果函数定义放在调用之前也是可以的。

换个写法

函数的定义只能放前面;放后面的话函数的声明必须放前面
10.2 多个文件
一般情况下,函数和类型的声明放在头文件(.h)中,而函数的实现放在源文件(.c)中

++好了今天的学习内容就到这里啦,谢谢你的陪伴,我是潼心,下次再见~如果这篇文章对你有帮助的话。请务必给主播一个一键三连,球球了,这对主播很重要~++