引入目的
1.C语言中的函数,不是数学中的函数
2.在同一个程序中可能多次使用某个功能,会造成代码冗余
3.将某个特定功能的代码进行封装一个整体,并起个名字,后期需要这一段程序时只需要使用这段代码的名字,就能表示整个代码块
4.我们将能实现特定功能的代码块这个整体称为函数
函数的好处
1.使主程序比较简单明了,因为实现功能的封装
2.能够实现功能的复用,只要将函数封装好,使用时调用名字即可,无需重写该功能
3.能够实现一处修改,处处修改的作用
函数的分类
1.从定义角度来看可以分为库函数和用户自定义函数
1.库函数:系统提供的封装好了的函数,使用相关函数时,需要加上该函数所在的头文件
printf、scanf、getchar、putchar、gets、puts--->stdio.h
isalpha、isupper、toupper、tolower--->ctype.h
strcpy、strlen、strcmp、strcat--->string.h
2.用户自定义函数:系统提供的函数,不足以满足条件时,用户可以创造一个函数,自己使用
2.从函数参数角度来说:有参函数、无参函数
有参函数:例如printf(“hello”)、strlen(value)、strcmp(s1,s2)
无参函数:例如getchar()
3.从返回值角度来说:有返回值函数、无返回值函数
无返回值函数:当前函数执行完相关功能后,不提供任何的返回信息,结果是一个空值
有返回值函数:当前函数不仅要执行完相关的功能,并且向主程序中返回一个确定的值
函数的定义
1.函数是特定的功能的代码块,原则上来说,一个函数只能实现一个功能
2.函数头三要素:功能(函数名)、参数(形参列表)、返回值(返回值类型)
返回值类型 {
函数体内容;
}
3.返回值类型:void类型和非void类型
void类型:表示该函数是无返回值的,程序执行完功能后就自动函数体就结束了
非void类型:可以是之前所学的任意一个数据类型(不包括void)。表示不仅将当前函数名所表示的功能全部执行后,还给出一个确定的结果
4.函数名:是一个标识符(见名知意)
形参列表:可以有也可以没有,表示向该功能输入数据
函数的定义分类
无参无返回值函数、有参数无返回值的函数、无参有返回值的函数、有参有返回值的函数
无参无返回:
1.仅仅只是将代码段封装成一个整体,并该该语句块起个名字,无需数据输入,也没有数据的输出,只执行封装的语句块
2.定义格式: void 函数名() { 被封装的语句块 }
3. 调用格式: 函数名();
有参无返回:
1.需要外界传入一些数据进行启动,否则执行失败。
2.该函数会对传入发数据执行相关的操作后,结束,没有任何的结果
3.定义格式void 函数名(参数类型 参量变量名...)
4.调用格式:函数名(参数1..)
无参有返回:
1.直接调用功能函数,数据由功能函数产生,执行结束后给主程序一个结果
2.使用return表达式将结果返回主程序 return(表达式);或者return 表达式;
不关注返回结果: 函数名();
关注返回结果: 数据类型 变量名 = 函数名();
有参数有返回值函数:
1.函数执行需要给定的数据启动,函数只是负责对数据的处理,处理后会给出一个结果,由函数名返回给主程序使用
2.定义格式: 返回值类型 函数名(参数列表) { 函数体内容 ; return 表达式; }
3.调用格式:
1、不关注返回结果: 函数名(实参数据);
2、关注返回结果: 数据类型 变量名 = 函数名(实参数据);
1> 有关参数:有参无参看主调,主调函数传数据,就定义有参函数,主调函数传几个数据,就定义几个变量接收,主调函数传什么类型的数据,就定义什么类型的参数。
主调函数的参数和被调函数的参数是一一对应的
函数定义时括号中的参数称为形式参数,形式参数的表现形式必须是 变量
函数调用时括号中的参数称为实际参数,实际参数的表现形式:常量、变量、表达式
2> 有关返回值:有返无返看主调,主调函数需要结果数据时,定义有返回值函数,主调函数不需要结果数据时,定义无返回值函数。主调函数需要什么类型的结果,那么就定义什么类型的返回值
return后的表达式的结果可以跟函数的返回值类型不一致。当不一致时,return后的表达式结果数据类型会转换成函数返回值类型
全局变量与局部变量以及静态变量
局部变量
1> 定义:定义在函数体内的变量称为局部变量
2> 表现形式:定义在函数体内的变量、定义在语句块内的变量、函数的形式参数
3> 作用域(作用范围):
函数体内的变量:从定义开始,到当前所在的函数结束为止
语句块内的变量:从定义开始到所在语句块结束为止
函数的形式参数:从函数运行开始,到函数结束为止
超过变量的作用域后,就不可以使用该变量了
4> 不同作用域下的局部变量是可以同名的。当局部变量同名时,使用距离最近的变量(就近访问原则)
3.2 全局变量
1> 定义在函数外部的变量叫做全局变量
2> 作用域:从定义开始,到所在文件结束
3> 作用:多个函数,可以共享全局变量
4> 局部变量可以跟全局变量同名,当局部变量跟全局变量同名时,依然使用就近访问原则。
局部变量会屏蔽全局变量。
作业:
1> 将昨天的学生管理系统,相关功能都封装成函数
2> 将链接上的内容,除了指针外的所有内容都可以做完了
3> 思维导图

1483

被折叠的 条评论
为什么被折叠?



