第8章函数(4-2学时) 课堂教学4学时 上机操作2学时 教学累计24学时 上机累计8学时
第8章 函数 (4-2学时) 课堂教学4学时 上机操作2学时 教学累计24学时 上机累计8学时
函数本质上是一段程序,这段函数可以被 其他函数调用,以完成函数特定的功能 可反复使用 除了主函数,其他函数是不能独立运行的 使用函数前要先定义函数,定义过的函数 可以被调用 定义和调用函数时,都要注意如何将函数 要加工的数据带入被调用函数,如何把被 调函数处理后的结果数据带回主调函数 定义和使用函数的关键,是在主调函数和 被调函数之间正确的传递数据
• 函数本质上是一段程序,这段函数可以被 其他函数调用,以完成函数特定的功能。 可反复使用 • 除了主函数,其他函数是不能独立运行的 • 使用函数前要先定义函数,定义过的函数 可以被调用 • 定义和调用函数时,都要注意如何将函数 要加工的数据带入被调用函数,如何把被 调函数处理后的结果数据带回主调函数 • 定义和使用函数的关键,是在主调函数和 被调函数之间正确的传递数据
例8.1:简单的函数调用 1. main() 2. printstar() 3. print message(): 4. printstar() 5.} 6. printstar() 7.{ 8.pint(.***为********Ⅶn"); 9.} 10. print message() 1.{ 12. printf(" How do you do! n) 13}
• 例8.1:简单的函数调用 1. main( ) 2. {printstar( ); 3. print_message( ); 4. printstar( ); 5. } 6. printstar( ) 7. { 8. printf("* * * * * * * * * * * * * * * * \n"); 9. } 10.print_message( ); 11.{ 12. printf(" How do you do! \n); 13.}
运行结果: 大大大大大大大大大大大大大大大大大 How do you do 大大大大大大大大大大大大大大大大大
• 运行结果: • * * * * * * * * * * * * * * * * * How do you do ! * * * * * * * * * * * * * * * * *
说明 1.C程序的执行从main函数开始,调用其他 函数后流程回到main函数,在main函数 中结束整个程序运行 2.从函数使用的角度看,函数有两种: ①库函数②自定义函数 3.从函数的形式看,函数分两类: ①无参函数②有参函数
说明 1. C程序的执行从main函数开始,调用其他 函数后流程回到main函数,在main函数 中结束整个程序运行 2. 从函数使用的角度看,函数有两种: ① 库函数 ② 自定义函数 3. 从函数的形式看,函数分两类: ① 无参函数 ② 有参函数
函数定义的一般形式 1.无参函数的定义形式 类型标识符函数名() 声明部分 语句 例: print message() printf(" How do you do! n);
函数定义的一般形式 1. 无参函数的定义形式 类型标识符 函数名( ) { 声明部分 语句 } 例:print_message( ) { printf(" How do you do! \n); }
2.有参函数的定义形式 类型标识符函数名(形式参数表列) 声明部分 句} 例 Iint] max(int X, int y) tint z: Z=X>y? y return Z, I
2. 有参函数的定义形式 类型标识符 函数名(形式参数表列 ) { 声明部分 语句 } 例: [int] max(int x,int y) {int z; z=x>y?x:y; return z;}
函数参数和函数的值 形式参数和实际参数 例8.2调用函数时的数据传递 main( Rint a, b, C, scanf("d, %d", &a, &b) C=max(a, b) /a,b为实际参数* printf( Max is %d,C); 1 max(int x, int y) /x,y为形式参数* fint z; Z=X>y?x: y return():] 运行时输入:7,8 运行结果: Max is8
函数参数和函数的值 • 形式参数和实际参数 • 例8.2调用函数时的数据传递 main( ) {int a,b,c; scanf("%d,%d",&a,&b); c=max(a,b); /*a,b为实际参数*/ printf("Max is %d",c);} max(int x,int y) /*x,y为形式参数*/ {int z; z=x>y?x:y; return(z);} 运行时输入:7, 8 运行结果:Max is 8
·例:对三个整型参数求最大值,返回最大值 int max(X1,x2x3)可以 max(int X1ntx2ntx3) int x1x2 X3 形式参数 tint max f(X1>×2)maX=x1; else max=x2 if(max <X3)max=X3 return(max), 1 实/ 数 调用形式: max(a, b, c)
• 例: 对三个整型参数求最大值,返回最大值 int max(x1,x2,x3)可以max(int x1,int x2,int x3) int x1,x2,x3; 形式参数 {int max; if(x1>x2)max=x1; else max=x2; if(max<x3) max=x3; return(max);} 实 际 参 数 调用形式: max(a,b,c);
关于形参与实参的说明 1.形参只有在发生函数调用时才临时分 配内存单元,调用结束后立即释放 2.实参可以是常量、变量、表达式、数 组名 3.定义函数时必须指定形参的类型 4.实参与形参的类型应相同或赋值兼容 5.实参与形参的数据传递是“值传递” 即单向传递
关于形参与实参的说明 1. 形参只有在发生函数调用时才临时分 配内存单元,调用结束后立即释放 2. 实参可以是常量、变量、表达式、数 组名 3. 定义函数时必须指定形参的类型 4. 实参与形参的类型应相同或赋值兼容 5. 实参与形参的数据传递是“值传递” 即单向传递