1.函数的概念:子程序
C语言中的函数就是一个完成某项特定任务的一小段代码。
C语言中的函数包括库函数(现成的,可以直接使用的)和自定义函数
函数的好处:拆分任务,可以复用,提高开发效率
2.库函数
2.1标准库和头文件
标准库: C语言标准中规定了C语言的各种语法规则,C语言并不提供库函数;C语言的国际标准ANSIC规定了一些常用函数的标准,被称为标准库。让C语言编译器的厂商根据规定来实现对应的库函数。
2.2库函数的使用方法
库函数的使用,务必包含对应的头文件,不包含是可能会出现一些问题的。
3.自定义函数
3.1函数的语法形式
函数的参数可以是void明确表示函数没有参数,如果有参数,就要交代清楚参数的类型和名字,以及参数个数。
(1)函数名是自定义的,根据实际情况而定
(2)参数的个数也是根据实际情况而定的
(3)函数可以有返回值也可(void)
Add函数也可以简化为此。
4.形参和实参
4.1实参(实际参数:函数调用时,真实传递给函数的参数)
例如上述图片中,在调用Add函数时,传递给函数的参数a,b,就称为实际参数,简称实参。
4.2形参
如果定义了x和y参数,而不去调用的话,Add函数的参数x和y只是形式上存在,不会像内去申请存储空间,不会真实存在,所以叫形式参数。形式参数只有在函数被调用的过程中为了存放实参传递过来的值,才会申请空间。
4.3实参和形参的关系
当实参传递给形参的时候,形参是实参的一份临时拷贝;
对形参的修改是不会影响实参的。
函数的返回类型:
(1)内置类型:char,int,short,double...
(2)void(意味着函数不需要返回值,也不返回值)
5.return语句(return单独出现,函数提前返回,提前结束)
- return后边可以是一个数值,也可以是一个表达式,如果是表达式就先执行表达式,自执行表达式的结果。
- return后边也可以什么都没有,直接写return;这种写法适合函数返回类型是void的情况。
- return返回的值和函数返回类型不一致,系统会自动将返回的值隐式转换为函数的返回类型。
- return语句在执行后,函数就彻底返回,后边的代码不再执行。
- 如果函数中存在if等分支的语句,则要保证每种情况下都有return返回
- 函数的返回类型如果什么都不写,默认函数的返回类型是int
- 如果函数中存在if分支的语句,泽要保证每种情况下都有return返回,否则会出现编译错误。
6.数组做函数参数
(函数的返回类型如果什么都不写,默认返回int类型)
这里的set_arr函数要能够对数组内容进行设置,就得把数组作为参数传给函数,同时在函数内部设置数组每个元素的时候,也得遍历数组,需要知道数组的元素个数。所以我们需要给set_arr传递2个参数,一个是数组,另外一个是数组的元素个数。
7.嵌套调用和链式访问
7.1嵌套调用
7.2链式访问(将一个函数的返回值作为另一个函数的参数)
8.函数的声明和定义
8.1单个文件
C语言中,函数必须先声明再调用,函数的声明是告诉编译器函数的名字,返回值,类型。
8.2多个文件
一般情况下,函数的生命,类型的声明放在头文件中,函数的实现是放在源文件中。
8.3 static(静态的)和extern(声明外部符号)都是C语言中的关键字
作用域:代码可以使用的区域
生命周期:变量的创建到变量的销毁之间的时间段