北京航空航天大学C语言h第八讲(第八章) 函数1
- 格式:ppt
- 大小:393.50 KB
- 文档页数:42


定义无参函数:类型标识符函数名(){声明+语句}定义有参数的函数:类型标识符函数名(形式参数列表){声明+语句}不带返回值的函数类型为空类型,即void类型。
该函数中不应出现return语句。
若需要返回值,则在语句部分加入return(表达式); 语句。
return的数据类型必须与函数类型标识符相同。
return后面的括号可以不要,直接使用return 表达式的方式。
return语句代表着函数结束,return后的语句不再执行。
如果在定义函数时,未指明函数类型,则默认为int型,故函数标识符可省略,但一般建议写出。
定义函数时所用的参数叫做形参,在未调用函数时,不为其分配内存单元,当函数被调用时,为形参分配内存单元,在调用结束时释放。
在函数调用时,所输入的参数叫做实参。
实参形参的类型必须相同或者赋值相容。
函数调用中,实参的值不会发生变化。
即函数调用处理的是与实参值相同的形参。
不同系统在接受实参时,对实参的处理顺序不一样,有的自右向左,有的自左向右。
如:i=2;f(i,++i); 自右向左为f(3,3); 自左向右为f(2,3); 应尽量避免这种容易产生混乱的引用方法。
程序所要调用的函数必须是已经存在的库函数或者已经定义的用户函数。
若用户函数的定义的位置在调用它的函数的定义位置前,则无需声明,若用户函数的定义的位置在调用它的函数的后面,则需要进行声明。
声明方式和定义变量相类似,如:int a();声明函数时,形参的参数名可以省略。
编译系统只检查参数个数及参数类型。
另外,若被调用函数为整型或已在文件的开头进行了申明,则可以在main函数内不进行声明。
C语言中的函数定义不能进行嵌套定义,即一个函数内部定义另一个函数,但可以进行嵌套调用。
注意:是函数的定义内部不能有其他函数的定义,但可以在函数的定义内部调用另一个函数的定义。
在调用一个函数过程中又出现间接或直接调用该函数本身,称为函数递归调用。
直接调用即:f1调用f1;间接调用即f1调用f2,f2再调用f1;递归问题经典问题:汉尼塔问题:定义一个函数hanoi,运用递归思路来解决问题。