C语言_第9章.ppt

上传人:少林足球 文档编号:3588970 上传时间:2019-09-14 格式:PPT 页数:27 大小:2.25MB
返回 下载 相关 举报
C语言_第9章.ppt_第1页
第1页 / 共27页
C语言_第9章.ppt_第2页
第2页 / 共27页
C语言_第9章.ppt_第3页
第3页 / 共27页
C语言_第9章.ppt_第4页
第4页 / 共27页
C语言_第9章.ppt_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《C语言_第9章.ppt》由会员分享,可在线阅读,更多相关《C语言_第9章.ppt(27页珍藏版)》请在三一文库上搜索。

1、第九章 函 数,第9章 函数,9.1 函数概述 9.2 函数的定义 9.3 函数的返回语句 9.4 函数的参数 9.5 函数的调用 9.6 内部函数和外部函数 9.7 局部变量和全局变量 9.8 C语言库函数 9.9 实战练习,本章学习内容,9.1 函数概述,C语言的基本单位是函数,函数包含程序的可执行代码 为了方便编写、调试,将一个程序划分为若干个程序模块,每个程序模块完成一种功能,这些模块就可以分成函数来实现 一个源文件通常有一个或多个函数构成,编译系统以文件为单位进行编译,而不是以函数为单位进行编译,9.1 函数概述,系统函数和用户自定义函数的区别: 好比吃饭这件事情,可以自己烧饭,也可

2、以去餐厅点菜吃饭,自己烧饭就相当于用户自定义函数,需要自己动手买菜,洗菜,烧菜;去餐厅点菜吃饭就相当于系统函数,只需要点自己想吃的菜,至于买菜、洗菜、烧菜这些步骤,都有人为你做,9.2.1 函数定义的形式,函数返回值类型 函数名(参数列表) 函数体; ,函数定义包括函数头和函数体两部分 1.函数头 (1)函数返回值类型:可以是C语言的某一种数据类型 (2)函数名:在程序中必须是唯一的,需要遵循标识符的命名规则 (3)参数列表:可以没有参数,也可以有多个参数 2.函数体 函数体包含函数可执行代码 int Add(int a, int b) . ,说明: (1)无参函数:没有参数的函数 void

3、ShowMessage() printf(“This is a function of show messagen”); (2)空函数:没有任何内容的函数,9.2.1 函数定义的形式,9.2.2 定义与声明,声明格式: 返回值类型 函数名(参数列表); 例如: int Add(int a, int b); 说明: (1)声明是一条语句,必须以分号结尾 (2)函数声明中,参数列表的参数可以省略参数名 (3)函数定义在调用之前,无需先给函数声明,9.3 函数的返回语句,返回语句的形式: return 表达式;或return (表达式); 形如:return 0; return语句的作用: 返回语句

4、可以使程序流程立即从所在的函数中退出,返回到调用的程序中去 返回语句返回函数的值,调用函数可以使用被调用函数的返回值,执行下面的程序流程,9.3 函数的返回语句,说明 (1)返回语句的返回值的类型R必须与函数头中说明的函数返回值类型S一致,或T可以自动转换成的S (2)在一个函数中,返回语句可以有多个,但只有一个被执行 (3)void返回类型表示函数没有返回值,可以没有返回语句,或只有return,9.4.1 形式参数与实际参数,形式参数出现在函数的定义中,相当于函数中的变量,在整个函数体内都可以使用,函数体外不能使用 实际函数是在主调函数中调用函数时,传入的参数 通过函数的调用,将实际参数的

5、值赋给形式参数,9.4.1 形式参数与实际参数,说明 (1)形式参数只有在函数调用时才分配内存单元,调用结束后,立即释放所分配的内存单元 (2)实参对形参的数据传递是“值传递”,它属于单向传递,只能把实参的值传递给形参,而不能把形参的值传递给实参,若形参的值发生改变,不会影响实参的值,9.4.2 函数参数的特殊情况数组,当数组作为函数的实参时,只能传递数组的地址,而不能将整个数组的元素传递给函数,此时系统会将指向该数组的第一个元素的指针传递给被调用函数 注意: int a10; a表示整个数组的首地址,也表示数组中第一个元素的地址,即: a与&a0等价,9.4.2 函数参数的特殊情况数组,1.

6、数组元素作为函数实参 此时数组元素与普通变量的使用方式一样 2.数组名作为函数参数 实参和形参都使用数组名 3.可变长度数组作为函数参数 要注意越界问题 4.使用指针作为函数参数,9.4.3 main()函数的参数,格式:int main(int argc, char * argv );,9.5.1 函数调用的一般方式,1. 函数语句调用 把函数的调用作为独立的一条语句 例如: ShowMessage(); 2. 函数表达式调用 函数的调用出现在一个表达式中 例如: result = sum * Add(x, y); 3.函数参数调用 函数的调用作为函数的实参 例如: result = Add

7、(x, Add(y, z);,9.5.2 函数的嵌套调用,函数的函数体中包含对另一个函数的调用,例如: int add(int a, int b) return (a +b ); void PrintResult(int a, int b) printf(“a+b=%dn”, add(a, b); ,9.5.3 函数的递归调用,一个函数在它的函数体中直接或间接的调用其自身,9.6.1 内部函数,定义一个函数,如果这个函数只能被所在的源文件中的其他函数调用,而不能被其他源文件中的函数调用,这个函数称为内部函数,又称为静态函数。 定义内部函数时,使用关键字static修饰 static 返回值类型

8、 函数名(参数列表); 说明 static关键字的含义不是指存储方式,而是指函数的调用范围只局限于本文件,因此不同源文件中的同名内部函数互不影响,9.6.2 外部函数,外部函数是指该函数可以被其他源文件中的函数调用 extern 返回值类型 函数名(参数列表); 例如: extern int add(int a, int b); 说明: C语言中,如果在定义时未指明是内部函数还是外部函数,默认是外部函数,所以可以省略extern,9.7 局部变量和全局变量,作用域 变量的有效性的范围,例如函数形式参数只有在函数调用期间才分配存储单元,调用结束时立即释放,标明形式参数在函数内才有效,离开该函数就

9、不能被使用了 按作用域范围可将变量分为局部变量和全局变量,9.7.1 局部变量,也称为内部变量,通常是在函数的内部定义或语句块内定义,作用域仅限于函数体内或语句块内 函数形式参数属于局部变量,9.7.1 局部变量,9.7.1 局部变量,注意 C语言中,位于不同作用域的变量可以使用相同的标识符命名,此时内层作用域中使用的变量将屏蔽外层作用域中的同名变量,直到内层变量的作用域结束为止,9.7.2 全局变量,变量在所有的函数和语句块的外部声明,那么这个变量就是全局变量 全局变量属于整个源文件,如果外部文件要使用该全局变量,需要使用extern关键字进行引用,然后才能使用 全局变量的作用是函数间数据联

10、系的渠道,由于同一个文件中的所有函数都可以引用该全局变量的值,所以如果一个函数中改变了全局变量的值,其他使用该变量的地方都会使用改变后的值,9.8 C语言库函数,1. adb()函数 2. labs()函数 3. fabs()函数 4. sin()函数 5. cos()函数 6. tan()函数 7. isalpha()函数 8. isdigit()函数 9. isalnum()函数,9.9 实战练习,1定义一个标识符为Max()函数,功能是判断两个数的大小,并将较大的整数返回。 2编写函数prime(),判断给定的整数x是否是素数,在主函数输入一个整数,输出是否为素数。 3用递归法反序输出一个正整数的各位数值,如输入4532,输出2354,END,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1