说明: 1、在C语言中所有的函数定义,包括主函数main在内,都是 平行的。也就是说,在一个函数的函数体内,不能再定义另 个函数,即不能嵌套定义 函数之间允许相互调用,也允许嵌套调用。把调用者称为 主调函数。函数还可以自己调用自己,称为递归调用。 3、一个C源程序必须有,也只能有一个主函数main。 4、main函数是主函数,它可以调用其它函数,而不允许被 其它函数调用。 5、C程序的执行总是从main函数开始,完成对其它函数的 调用后再返回到main函数,最后由main函数结束整个程序
6 1、在C语言中所有的函数定义,包括主函数main在内,都是 平行的。也就是说,在一个函数的函数体内,不能再定义另 一个函数,即不能嵌套定义。 2、函数之间允许相互调用,也允许嵌套调用。把调用者称为 主调函数。函数还可以自己调用自己,称为递归调用。 3、一个C源程序必须有,也只能有一个主函数main。 4、main 函数是主函数,它可以调用其它函数,而不允许被 其它函数调用。 5、C程序的执行总是从main函数开始, 完成对其它函数的 调用后再返回到main函数,最后由main函数结束整个程序。 说 明:
函数定义的一般形式 1无参函数的一般形式 类型说明符函数名() 函数头 类型说明 语句 函数体 ■类型说明符指明了本函数的类型,函数的类型实际上是函 数返回值的类型 ■函数名是由用户定义的标识符,函数名后有一个空括号, 其中无参数,但括号不可少 ■{}中的内容称为函数体
7 函数定义的一般形式 类型说明符指明了本函数的类型,函数的类型实际上是函 数返回值的类型。 函数名是由用户定义的标识符,函数名后有一个空括号, 其中无参数,但括号不可少。 { } 中的内容称为函数体。 函数头 函数体 1.无参函数的一般形式 类型说明符 函数名( ) { 类型说明 语句 }
说明: ■在函数体中的类型说明,是对函数体内部所用到的变量的 类型说明 很多情况下都不要求无参函数有返回值,此时函数类型符 可以写为void 例如:定义一个函数: void Helloo printf("Hello, C System \n") 这里,Hll作为函数名,本函数是一个无参函数,当被 其它函数调用时,输出Hel, C System字符串
8 例如:定义一个函数: void Hello() { printf ("Hello,C System \n"); } 这里,Hello作为函数名,本函数是一个无参函数,当被 其它函数调用时,输出Hello,C System字符串。 在函数体中的类型说明,是对函数体内部所用到的变量的 类型说明。 很多情况下都不要求无参函数有返回值,此时函数类型符 可以写为void。 说 明:
2有参函数的一般形式 类型说明符函数名(形式参数表列) 类型说明 语句 ■有参函数比无参函数多了两个内容,其一是形式参数表, 其二是形式参数类型说明。 ■在形参表中给出的参数称为形式参数,它们可以是各种类 型的变量,各参数之间用逗号间隔。 ■在进行函数调用时,主调函数将赋予这些形式参数实际的 值。形参既然是变量,当然必须给以类型说明
9 有参函数比无参函数多了两个内容,其一是形式参数表, 其二是形式参数类型说明。 在形参表中给出的参数称为形式参数,它们可以是各种类 型的变量,各参数之间用逗号间隔。 在进行函数调用时,主调函数将赋予这些形式参数实际的 值。 形参既然是变量,当然必须给以类型说明。 2.有参函数的一般形式 类型说明符函数名(形式参数表列) { 类型说明 语句 }
例如,定义一个函数,用于求两个数中的大数,可写为: int max(a, b) int a, b; 传统格式 d int z; if (a>b)a; int max(int a, int b) else zb: i int z; return(z); 现代格式 if(a>b)za; else zbs return( Z );
10 例如,定义一个函数, 用于求两个数中的大数,可写为: int max(int a, int b) { int z; if (a>b) z=a; else z=b; return ( z ); } 现代格式 int max(a,b) int a,b; { int z; if (a>b) z=a; else z=b; return ( z ); } 传统格式