摆烂后-重拾C语言之函数

一.引言

C语言中的函数是指完成某一特定任务的一小段代码。使用函数的好处很多,在后续若要重复完成某一任务时,我们就可以调用函数来实现,减少了不必要的代码,也提升了代码的可读性。

二.库函数

库函数就是我们在写代码时常用的函数,如:print,scanf等。这些函数是编译器厂商为我们提供的,方便了我们写代码。并且库函数的使用都需要包含对应的头文件,这里给大家一个链接可以查询库函数,库函数的使用方法

三.自定义函数

3.1语法形式

返回类型 函数名(形式参数)
{

}

我们可以将函数想象成一个工厂
原料 => 函数参数
产品 => 函数运行结果

举例:写一个加法函数来完成两数的相加

四.函数参数

4.1形式参数

形式参数需要交代变量名(可与实参的名字不同),变量类型,个数。
如上图中add(int x,int y),x和y就是形参

4.2实际参数

在调用函数时实际传递给函数的,如上图中add(a,b),a和b就是实参

  • 实参可以是:常量,变量,表达式,函数等

4.3形参与实参间的关系

两者的存储空间不同在这里插入图片描述
调用函数时才会分配空间给形参,并且函数调用完后形参会自动销毁形参的值改变不会影响实参的值,但当数组做函数参数时,形参改变实参也会跟着改变,后面我会讲到

五.return语句

1.return语句之后可以跟一个值,也可以跟一个表达式。
2.return语句执行后,其后代码不再运行。
3.若函数中存在if等分支的语句,则必须保证每种情况都必须有返回值,否则会出现编译错误。
4.若return后面返回的值和函数的返回类型不同,则编译时会将值转换为函数的返回类型。
5.若定义函数返回类型是void时,不需要写return

1.在这里插入图片描述
2.在这里插入图片描述

六.数组做函数参数

举例:写一个函数将一个整型数组的内容全部置为-1,并打印出来
在这里插入图片描述

实参:需交代数组名,数组元素个数
形参:需交代数组类型,数组名,数组元素个数
注:1.形参里面的int arr[]我省略了大小,一维数组可以省略[]里面的数字
     2.二维数组可以省略行,但不能省略列
     3.形参操作的数组和实参是同一个数组
     4.二维数组做实参时则不是传递个数,而是需将传给函数

七.函数调用

1.函数名();
2.函数名(参数);

7.1嵌套调用

即在一个函数里调用另一个函数
函数能嵌套调用,但不能嵌套定义

void x()
{

}
void y()
{
	x();
}

举例:求某年某月有多少天
在这里插入图片描述

图中数组arr[]里面有一个0,为什么?

在这里插入图片描述通过上图可以看出,在最前面加一个数字0可以直接通过月份决定数组的下标,更好理解。你也可以不用加0,修改如下在这里插入图片描述

八.链式访问

即把函数的返回值当做函数的参数

在这里插入图片描述

printf的返回值:返回成功读取到的字符个数
上图中首先执行第二个printf,打印出123,其返回值是3,然后传递给第一个printf,打印出3,结合起来打印出1233

九.函数的声明

在调用任何函数之前都要声明

  • 函数的定义也是一种特殊的声明,但需要将函数的定义放在调用函数之前

如何声明?

返回类型 函数名(参数)

1. int add(int x,int y);
2. void print();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值