第八章函数 函数定义的一般形式 函数参数和函数的值 函数的调用 数组作为函数参数 函数的嵌套调用\函数的递归调用 局部变量和全局变量 内部函数和外部函数 本章要求及作业
第八章 函数 函数定义的一般形式 函数参数和函数的值 函数的调用 数组作为函数参数 函数的嵌套调用 \函数的递归调用 局部变量和全局变量 内部函数和外部函数 本章要求及作业
§81概述 Main( scanf() maX printf() printf() y getchar() max
§8.1 概 述 Main( ) scanf( ) max( ) x( ) printf( ) printf( ) y( ) getchar( ) max( )
函数的分类: 有返回值 1、根据有无返回值分: 无返回值 2、根据函数有无参数来分: 无参函数 有参函数
有返回值 无返回值 无参函数 有参函数 函数的分类: 1、根据有无返回值分: 2、根据函数有无参数来分:
§82函数定义的一般形式 1.无参函数定义一般形式 送型标识符函数名() 说明部分 该函数无形式参数列表 语句
§8.2 函数定义的一般形式 1.无参函数定义一般形式 类型标识符 函数名 ( ) {说明部分 语句 } 该函数无形式参数列表
2.有参函数定义一般形式 类型标识符函数名(形式参数列表) 说明部分 语句}
2.有参函数定义一般形式 类型标识符 函数名 (形式参数列表) {说明部分 语句 }
3、函数定义的其他形式 1)可以有空函数 dummy(无形式参数 { 函数体中无任何语句称为“空函数 2)无返回值函数 void max(…)
3、函数定义的其他形式 1).可以有空函数 dummy() { } 2). 无形式参数 void 无返回值函数 max (...) {...} 函数体中无任何语句,称为“空函数
§83函数参数和函数的值 、形式参数和实际参数 形式参数:在定义函数时使用的参数, 简称“形参”。变量 实际参数:在调用函数时使用的参数, 简称“实参”。表达式
§8.3 函数参数和函数的值 一 、形式参数和实际参数 形式参数:在定义函数时使用的参数, 简称“形参” 。 变量 实际参数:在调用函数时使用的参数, 简称“实参” 。 表达式
二、数的返回值 1、函数中的 return语句返回函数的值,一个函数可以有一个 以上的 return语句,执行到哪一个 return语句,哪个 return 语句就起作用。 例如:max(intx,inty){ return(x>y?x:y);} 2、定义函数时,应指明函数(返回值)类型 3、如果函数的类型与 return语句中表达式的类型不同,以函 数的类型为准 4、只要函数定义了返回值类型,无论函数中是否有 return语 句,函数均返回一个值。下面语句也是合法的: main lint a, b,c; a=star () b=message(); c=star ( printf(<%d, %d, %d", a, b, c) 5、为了明确规定函数不返回任何值,在函数定义中,“类型 标识符”必须声明为void(无类型或称空类型)
二、函数的返回值 1、函数中的return语句返回函数的值,一个函数可以有一个 以上的return语句,执行到哪一个return语句,哪个return 语句就起作用。 例如:max(int x, int y) { return (x>y? x : y ); } 2、定义函数时,应指明函数(返回值)类型 3、如果函数的类型与return语句中表达式的类型不同,以函 数的类型为准 4、只要函数定义了返回值类型,无论函数中是否有return语 句,函数均返回一个值。下面语句也是合法的: main( ) {int a,b,c; a=star( ); b=message( ); c=star( ); printf(“%d,%d,%d”,a,b,c); } 5、为了明确规定函数不返回任何值,在函数定义中,“类型 标识符”必须声明为void(无类型或称空类型)
S84函数的调用 一、函数调用的一般形式 函数名(实参列表) 二、函数调用的方式 printstarO; /*函数调用作为一个语句*/ c=2*max(ab)}/*函数作为表达式的一部分* m=max( a iax(bc)H/*函数的值作为一个函数的参数*/ printf("%d",max(a,b);/*函数的值作为一个函数的参数*/
§8.4 函数的调用 一 、函数调用的一般形式 函数名(实参列表) 二、函数调用的方式 printstar(); /* 函数调用作为一个语句*/ c = 2*max(a,b); /* 函数作为表达式的一部分 */ m = max (a, max(b,c));/* 函数的值作为一个函数的参数*/ printf("%d", max(a,b)); /* 函数的值作为一个函数的参数 */
三、对被调函数的说明 在一个函数中调用另一个函数,需要具备那些条件 1、被调用的函数必须已经存在。 2、使用系统预定义的函数(库函数),必须包 含头文件 3、程序员自己定义的函数,在调用前,一般应 声明其原型
三、对被调函数的说明 在一个函数中调用另一个函数,需要具备那些条件: 1、被调用的函数必须已经存在。 2、使用系统预定义的函数(库函数),必须包 含头文件 3、程序员自己定义的函数,在调用前,一般应 声明其原型