第6章函数 【例6.3】:空函数: dummy()j 调用此函数时,什么工作也不做,没有任何实际作用。在 主调函数中写上“ dummy():”表明“这里调用一个函数” 而现在这个函数没有起作用,等以后扩充函数功能时补充上 在程序设计中往往根据需要确定若于模块,分别由一些函数来 实现。而在第一峤段只设最簊本的模块,箕它一些次要功能 或锦上添花的功能则在以后补上。在编写程序的开始阶段,可 以奮将来准备拉夯功能的地方写上一个空函数,函数名取将来 实际函 merge 、 matproduct concatenate()、 shell(等,分别代表合并、矩阵相乘、字 符串连接、希尔法排序等),只是这些函数未编好,先 位置,以后用一个编好的函数代替它。这样做,程序的结构清 楚 读性好,以后扩充新功能方便,对程序结构影响不大 空函数在程序设计中常常是有角的。 Back
第6章 函 数 • 【例6.3】 :空函数: • dummy() { } • 调用此函数时,什么工作也不做,没有任何实际作用。在 主调函数中写上“dummy();”表明“这里调用一个函数” , 而现在这个函数没有起作用,等以后扩充函数功能时补充上。 在程序设计中往往根据需要确定若干模块,分别由一些函数来 实现。而在第一阶段只设计最基本的模块,其它一些次要功能 或锦上添花的功能则在以后补上。在编写程序的开始阶段,可 以在将来准备扩充功能的地方写上一个空函数,函数名取将来 采用的实际函数名(如merge()、matproduct()、 concatrnate()、shell()等,分别代表合并、矩阵相乘、字 符串连接、希尔法排序等),只是这些函数未编好,先占一个 位置,以后用一个编好的函数代替它。这样做,程序的结构清 楚,可读性好,以后扩充新功能方便,对程序结构影响不大。 空函数在程序设计中常常是有用的
第6章函数 622函数参数和函数的值 函数的参数 在调用函数时,大多数情况下,主调用函数和被调用函数之间有数据 传递关系。这航是前面提到的有参函数。函数的参数分为形式参数和 实际参数, 义函数时函数后面括弧中的变量名称为“形式参 简称“形参”)在调用函数时,函数名后面括弧的表达式称为 “实际参数”(简称“实参” 【例64】 main( fint a, b, c; scanf(%/od, %d",&a, &b); c=max(a, b) printf("Max is %d"c); max(ntx.Int /*定义有参函数*/ mintz; y return(z) Back
第6章 函 数 6.2.2 函数参数和函数的值 1.函数的参数 在 调用函数时,大多数情况下,主调用函数和被调用函数之间有数据 传递关系。这就是前面提到的有参函数。函数的参数分为形式参数和 实际参数,在定义函数时函数后面括弧中的变量名称为“形式参 数”(简称“形参”),在调用函数时,函数名后面括弧的表达式称为 “实际参数”(简称“实参”。 • 【例6.4】 • main( ) • {int a,b,c ; • scanf ("%d,%d",&a,&b); • c=max (a,b); • printf ("Max is %d ",c);} • max (int x ,int y) / * 定义有参函数* / • {int z ; • z=x>y?x:y ; • return (z) ;}
第6章函数 a和b是mian函数中定义的变量,函数调用时作为实 际参数,而x和y是函数max中的形式参数变量。通过函数 调用,使两个函数中的数据发生联系。 关于形参和实参的说明: 1、形参只有当调用时才临时分配存储单元。 2、实参一定要有确定的值,可以是表达式。 3、实参和形参的类型应相同或赋值相容。 参数的传递是通过调用来完成的, 分为按值传递和按址传递。 Back
第6章 函 数 • a 和b是 mian函数中定义的变量,函数调用时作为实 际参数,而 x和y是函数max中的形式参数变量。通过函数 调用,使两个函数中的数据发生联系。 • 关于形参和实参的说明: 1、形参只有当调用时才临时分配存储单元。 2、实参一定要有确定的值,可以是表达式。 3、实参和形参的类型应相同或赋值相容。 参数的传递是通过调用来完成的, 分为按值传递和按址传递
第6章函 【例64】 maint i int a=3, b=5 void swap( int, int MamO函数、分 Swap函数 swap(a, b) printf("a=%d, b=%d\,,a a 3 Did swap(int x, int 传递值 i int temp 5 temp=X; Xy; y=temp printf( x%d, y=%d n y 是按值传递的 temp 按址传递放在指针里面讲。 Back
第6章 函 数 【例6.4】 main( ) { int a=3, b=5; void swap( int , int ); swap (a, b); printf(“a=%d, b=%d\n ” , a, b); } void swap (int x, int y) { int temp; temp=x; x=y; y=temp; printf(“x=%d , y=%d \n ” , x, y); } 是按值传递的 按址传递放在指针里面讲。 Main()函数: 调用 Swap函数 传递值 3 5 a b 3 5 x y 3 temp
一8-第6章函数 622函数参数和函数的值 2函数的值 函数的值是指函数被调用之后,执行函数体中的程序段所取得的并返回给 主调函数的值。对函数的值(或称函数返回值)有以下一些说明: 函数的值只能通过 return语句返回主调函数。 return语句的一般形式为: return表达式 或者为: return(表达式); 2.函数值的类型和函数定义中函数的类型应保持一致。如果两者不一致,则 以函数类型为准,自动进行类型转换 3.如函数值为整型,在函数定义时可以省去类型说明 4.不返回函数值的函数,可以明确定义为“空类型”,类型说明符为“void 例如: void s(int n) Back
第6章 函 数 6.2.2 函数参数和函数的值 2.函数的值 函数的值是指函数被调用之后,执行函数体中的程序段所取得的并返回给 主调函数的值。对函数的值(或称函数返回值)有以下一些说明: 1.函数的值只能通过return语句返回主调函数。return 语句的一般形式为: return 表达式; 或者为: return (表达式); 2.函数值的类型和函数定义中函数的类型应保持一致。如果两者不一致,则 以函数类型为准,自动进行类型转换。 3.如函数值为整型,在函数定义时可以省去类型说明。 4.不返回函数值的函数,可以明确定义为“空类型” , 类型说明符为“void”。 例如: void s(int n) { …… }