〔语言序设计 第八章函数 任倮老师:台安
第八章 函数 任课老师:台安
第八章函数 8.1概述 8.2函数定义的一般形式 8.3函数参数和函数的值 84函数的调用 8.5函数的嵌套调用 令8.6函数和递归调用 8.7数组作为函数的参数 88局部变量和全局变量 令89变量的存储类型 8.10内部函数和外部函数 上一页下一页 返回 第八章函数
上一页 下一页 返回 第八章 函数 第八章 函数 ❖ 8.1 概述 ❖ 8.2 函数定义的一般形式 ❖ 8.3 函数参数和函数的值 ❖ 8.4 函数的调用 ❖ 8.5 函数的嵌套调用 ❖ 8.6 函数和递归调用 ❖ 8.7 数组作为函数的参数 ❖ 8.8 局部变量和全局变量 ❖ 8.9 变量 的存储类型 ❖ 8.10 内部函数和外部函数
要求 函数的概念 函数的定义 调用函数和被调用函数 令函数参数和函数的返回值 形参和实参的概念以及形参和实参的关系 参数如何传递 函数调用的三种方式 函数递归调用的概念 数组元素作函数实参。 用数组名作函数参数 用多维数组作函数参数 上一页下一页 返回 第八章函数
上一页 下一页 返回 第八章 函数 要求: ❖ 函数的概念 ❖ 函数的定义 ❖ 调用函数和被调用函数 ❖ 函数参数和函数的返回值 ❖ 形参和实参的概念以及形参和实参的关系。 ❖ 参数如何传递 ❖ 函数调用的三种方式 ❖ 函数递归调用的概念 ❖ 数组元素作函数实参。 ❖ 用数组名作函数参数。 ❖ 用多维数组作函数参数
§8.1概述 一个C程序,由一个主函数和若干其它函 数组成。 它们之间的关系是:主函数可以调用其 它函数,其它函数可相互调用 令函数:完成特定功能的程序段,通常由 用户定义或系统定义.下图反映某程序整 体结构, 上一页下一页 返回 第八章函数
上一页 下一页 返回 第八章 函数 §8.1 概述 ❖ 一个C程序,由一个主函数和若干其它函 数组成。 ❖ 它们之间的关系是: 主函数可以调用其 它函数,其它函数可相互调用。 ❖ 函数:完成特定功能的程序段,通常由 用户定义或系统定义. 下图反映某程序整 体结构
函数调用示意图 nain b e g h e 程序运行轨迹: main→÷a-da-ea-mai >b→≥f→>e→>f-b→>g→>b-h b-main→>C-为h-g-h->C sTrait 上一页下一页 返回 第八章函数
上一页 下一页 返回 第八章 函数 函数调用示意图
函数及函数调用的几点说明: 令(1)一个完整的程序可由若干个文件组成,可用工程或文件包含 (# include)的方法对其编译; 令(2)C执行总是从main函数开始执行,调用其它函数后又返回到 main函数; 令(3)函数定义是独立的、平等的,不能嵌套定义但可相互调用; (4)函数的类型 ①库函数,由系统提供 ②自定义函数,即用户根据需要自己定义的函数 令(5)函数的形式 令①无参函数-主调函数无数据传送给被调函数可带或不带返回值 ②有参函数-主调函数与被调函数间有参数传递,主调函数可将实参 传送给被调函数的形参,被调函数的数据可返回主调函数。 上一页下一页 返回 第八章函数
上一页 下一页 返回 第八章 函数 函数及函数调用的几点说明: ❖ (1)一个完整的程序可由若干个文件组成,可用工程或文件包含 (#include)的方法对其编译; ❖ (2)C执行总是从main函数开始执行,调用其它函数后又返回到 main函数; ❖ (3)函数定义是独立的、平等的,不能嵌套定义但可相互调用; ❖ (4)函数的类型: ❖ ①库函数,由系统提供; ❖ ②自定义函数,即用户根据需要自己定义的函数 ❖ (5) 函数的形式: ❖ ①无参函数--主调函数无数据传送给被调函数,可带或不带返回值. ❖ ②有参函数--主调函数与被调函数间有参数传递,主调函数可将实参 传送给被调函数的形参,被调函数的数据可返回主调函数
§8.2函数定义的一般形式 1.无参函数的定义形式: 类型标识符函数名() 指出函数返回值的 声明部分 数据类型 句 注:当函数没有返回值,可以省略类型标 符 上一页下一页 返回 第八章函数
上一页 下一页 返回 第八章 函数 §8.2 函数定义的一般形式 ❖ 1.无参函数的定义形式: 类型标识符 函数名( ) { 声明部分 语句 } 注:当函数没有返回值,可以省略类型标 识符。 指出函数返回值的 数据类型
例8.1: main( p p2() p1(); p1() printf(*求*****米**\n”;} p2() i printf How do you do!ln”);} 上一页下一页 返回 第八章函数
上一页 下一页 返回 第八章 函数 例8.1: main( ) { p1( ); p2( ); p1( ); } p1( ) { printf (“***********************\ n” ; } p2( ) { printf (“_ _ _ _ _How_do_you_do!\n”) ; }
2有参函数的定义形式为: 指出函数返回值的 接收主调函数传 数据类型 递过来的实参 类型标识符函数名(类型标识符形式参数) 声明部分; 语句 上一页下一页 返回 第八章函数
上一页 下一页 返回 第八章 函数 2.有参函数的定义形式为: 类型标识符 函数名(类型标识符 形式参数) { 声明部分; 语句; } 指出函数返回值的 数据类型 接收主调函数传 递过来的实参
例82: 形参接收主调函数传递过 来的实参,当man函数中调 用max函数时a与b的值就 int max( int x, int y) 传递给了x和 main( fint a, b, C, int max(int x, int y) a=20;b=10; i int z C=max(a, b) Zxy ?x: y printf("max is %dn",c) return(z) 输出: max is 20 上一页下一页 返回 第八章函数
上一页 下一页 返回 第八章 函数 例8.2: int max(int x , int y) { int z; z= x>y ? x : y ; return(z) ; } 输出: max is 20 形参:接收主调函数传递过 来的实参,当main函数中调 用max函数时,a与b的值就 int max( int x, int y); 传递给了x和y. main( ) { int a, b, c; a=20; b=10; c=max(a, b); printf(“max is %d\n”,c); }