Please enable JavaScript.
Coggle requires JavaScript to display documents.
第7章函数 - Coggle Diagram
第7章函数
标准库函数
(1)输入输出函数
如:printf()、scanf()、putchar()、getchar()等
(2)数学函数
abs(x),fabs(x) ,sqrt(x),pow( x, y)
(3)字符串处理函数
getchar()putchar(),stract(),strcpy(),strupr()
按函数来源分类
函数的调用
一般格式:
函数名(实参列表)
注意
当调用无参函数时,不应有实参。但要有()
实参可以是常量、变量或表达式
若有多个实参,要用逗号分隔。且实参要与形参类型一一对应
实参自右向左传值
调用方式
函数语句(适用于无返回值(void)函数的调用)
函数表达式(适用于有返回值的函数调用)
函数值作为参数
声明函数
在C语言中,要调用自定义的函数,一般要在主调函数中先对被调函数进行声明,然后调用该函数。
定义函数放在主调函数之前,则在主调函数之中可以省略函数声明语句。
都是int类型不用声明
函数的嵌套与递归
在被调用的函数中又调用其它函数叫函数的
嵌套
函数的定义不允许嵌套定义,函数的调用允许嵌套的。
注意:函数的执行从主函数开始,调用函数时,转到被调函数中执行,最后一定返回到主函数结束。
当一个函数在执行的过程中,出现直接或间接调用该函数本身,称为函数的递归调用。
分类
间接递归调用
通过其他函数调用自己
直接递归调用
自己反复调用自己
概念
调用其它函数的函数,称为主调函数,被调用的函数称为被调函数。
注意点:C函数从main()开始执行,main函数调用其它函数,其它函数不能调用main( )函数,其它函数之间可以互相调用
一个C程序由一个主函数和若干个函数组成
分为标准库函数和自定义函数两种
按函数有无参数分类
有参函数
类型名 函数名( 形参列表 )
{ 声明变量
语句序列
}
无参函数
类型名 函数名( )
{ 声明变量
语句序列
}
注意
形式参数(简称形参),是函数被调用时用来接受传来的实际参数的。形参列表中的每个形参都要声明其类型。
若有二个以上的形参,则各参数之间要以逗号分隔。(for语句用分号)
函数名前边的类型名是指函数值的数据类型。函数值的类型名若缺省,则默认函数值为int 型。
函数一般有返回值,函数返回值由return语句得到,并传递给主调函数。
如果函数不带回值,只完成某种操作,则函数结尾可以用不带表达式的return语句,或省略return语句。
函数的类型可定义为void(无值),表示该函数无返回值。
自定义函数
fac(),exchange()等
函数的参数传递
定义函数时所带的参数称为形式参数(简称形参)。调用函数时所带参数称为实际参数(简称实参)。当调用函数时,实参的值要传递给对应的形参,传递方向是
单向
的,即只能是实参向形参传递。
传递方式
传值方式
特点
(1) 实参和形参各占有不同的存储单元。所以在被调函数中若改变了形参的值,并不会影响实参的值。实参与形参允许同名,不会混淆。
(2) 实参的值传递给形参,称为值传递,且是单向传递,即只能由实参传值给形参。
(3) 形参和实参数目要相同、类型要匹配。
实参的求值顺序是
自右到左
传地址方式
实参传递给形参的是变量的地址,即指针。
调用函数时,若以数组名作为函数的实参,则要求形参也应是数组名(或指针变量)
实参和形参都是实参数组的首地址,即实参和形参指同一个数组
注意将数组名作为参数时,实参数组与形参数组要类型一致。
形参数组可以不指定大小,而另设一个参数指定元素的个数
数组初始化
整体初始化
换行初始化
22-7杨霖第七章思维导图