1.无参函数 根据函数是否需要参数,又可将函数分为无参 函数和有参函数两种 无参函数的一般形式 函数返回值的类型名函数名(vod) [说明语句部分;] [可执行语句部分;] 例62构造一个输出一行”*”的函数: void printstaro i printf( 大大大大大大大大大大大大大大大大大大
1.无参函数 根据函数是否需要参数,又可将函数分为无参 函数和有参函数两种。 无参函数的一般形式 函数返回值的类型名 函数名( void ) { [说明语句部分;] [可执行语句部分;] } 例 6.2 构造一个输出一行”*”的函数: void printstar() { printf(“******************\n”);}
2.有参函数 有参函数的一般形式 函数返回值的类型名函数名(数据类型参数1[,数据类型 参数2]) [说明语句部分;] [可执行语句部分;] 例63一个求两个双精度数之和的函数: double add( double x, double y)/*函数首部* { double s;/说明部分* s=xy:;/语句部分 return s;/返回语句*
2.有参函数 有参函数的一般形式 函数返回值的类型名 函数名(数据类型 参数1[,数据类型 参数2……] ) { [说明语句部分;] [可执行语句部分;] } 例 6.3 一个求两个双精度数之和的函数: double add(double x,double y) /*函数首部*/ {double s;/*说明部分*/ s=x+y; /*语句部分*/ return s;/*返回语句*/ }
例64求两个数中的大数 (注意:此例中函数调用时的类型转换) 程序如下: include<stdio. h> max(float x, float y) i float z 运行结果为: Z=xy?x:y, max s1.000000 return z, 1 maino i float a=1.5, b=0.5 float c c=max(a, b) printf("max is %f\n,, C);
例 6.4 求两个数中的大数 (注意:此例中函数调用时的类型转换) 程序如下: #include<stdio.h> max(float x,float y) { float z; z=x>y?x:y; return z;} main() { float a=1.5,b=0.5; float c; c=max(a,b); printf(“max is %f\n”,c);} 运行结果为: max is 1.000000
注意 (1)函数名和形式参数都是用户命名的标识符。在同 程序中,函数名必须唯一;形式参数只要在同 函数中唯一即可,可以与其它函数中的变量同 名 (2)C语言规定,不能在一个函数的内部再定义函数。 (3)对函数类型的说明,必须与 return语句中返回值 表达式的类型一致。如果不一致,则以函数类型 为准,由系统自动进行转换。如果缺省函数类型, 则系统一·律按int类型处理
注意: (1)函数名和形式参数都是用户命名的标识符。在同 一程序中,函数名必须唯一;形式参数只要在同 一函数中唯一即可,可以与其它函数中的变量同 名。 (2)C语言规定,不能在一个函数的内部再定义函数。 (3)对函数类型的说明,必须与return语句中返回值 表达式的类型一致。如果不一致,则以函数类型 为准,由系统自动进行转换。如果缺省函数类型, 则系统一律按int类型处理
注意 (4)空函数—既无参数、函数体又为空的函 数。其一般形式为: [函数类型]函数名vod)合 如: dump (5)带参数的形式参数表中类型和变量必须成 对出现,如下面的定义是错误的: double add(double x, y)
注意: (4) 空函数──既无参数、函数体又为空的函 数。其一般形式为: [函数类型] 函数名(void) {} 如:dump(){} (5) 带参数的形式参数表中类型和变量必须成 对出现,如下面的定义是错误的: double add(double x,y)