清华大学出版社 TSINGHUA UNIVERSITY PRESS 7.3被调函数的声明 2可以省略主调函数中对被调函数的函数声明 C语言中又规定在以下几种情况时可以省去主调函数中对被调 函数的函数声明。 (1)当被调函数的函数定义出现在主调函数之前时,在主调 函数中也可以不对被调函数再作声明而直接调用。 (2)如在所有函数定义之前,在函数外预先声明了各个函数 的类型,则在以后的各主调函数中,可不再对被调函数作声明。 例如: char str(int a); void maino char str(int a) 返回本章首页
11 返回本章首页 7.3 被调函数的声明 2.可以省略主调函数中对被调函数的函数声明 C语言中又规定在以下几种情况时可以省去主调函数中对被调 函数的函数声明。 (1)当被调函数的函数定义出现在主调函数之前时,在主调 函数中也可以不对被调函数再作声明而直接调用。 (2)如在所有函数定义之前,在函数外预先声明了各个函数 的类型,则在以后的各主调函数中,可不再对被调函数作声明。 例如: char str(int a); void main() { } char str(int a) { }
清华大学出版社 TSINGHUA UNIVERSITY PRESS 74函数的调用 函数调用的一般形式 C语言中,函数调用的一般形式为: 函数名(实际参数表列) 对无参函数调用时则无实际参数表列。实际参数表列中的参 数可以是常量、变量、函数、表达式或其它构造类型数据。各实 参无需指定类型,多个实参之间用逗号分隔 2函数调用的方式 1)函数表达式 函数调用出现在另一个表达式中,这时要求函数带回一个确 定的值以参加表达式的运算。例如:z=max(xy)是一个赋值表达 式,把max的返回值赋给变量z。 返回本章首页
12 返回本章首页 7.4 函数的调用 1.函数调用的一般形式 C语言中,函数调用的一般形式为: 函数名(实际参数表列) 对无参函数调用时则无实际参数表列。实际参数表列中的参 数可以是常量、变量、函数、表达式或其它构造类型数据。各实 参无需指定类型,多个实参之间用逗号分隔。 2.函数调用的方式 1)函数表达式 函数调用出现在另一个表达式中,这时要求函数带回一个确 定的值以参加表达式的运算。例如:z=max(x,y)是一个赋值表达 式,把max的返回值赋给变量z
清华大学出版社 TSINGHUA UNIVERSITY PRESS 74函数的调用 2函数调用的方式 2)函数语句 函数调用单独作为一个语句,即在一般形式末尾加上分号构 成函数语句。例如: print("%d",a);就是以函数语句的方式调用 函数。这时不要求函数带返回值,只要求函数完成一定的操作 3)函数实参 函数调用作为另一个函数调用的实际参数出现。这种情况是 把该函数的返回值作为实参进行传送,因此要求该函数必须是有 返回值的。 例如: printf(" %d", maxx,y)) 把max函数调用的返回值又作为prnt函数的实参来使用。 13 返回本章首页
13 返回本章首页 7.4 函数的调用 2.函数调用的方式 2)函数语句 函数调用单独作为一个语句,即在一般形式末尾加上分号构 成函数语句。例如:printf("%d",a);就是以函数语句的方式调用 函数。这时不要求函数带返回值,只要求函数完成一定的操作。 3)函数实参 函数调用作为另一个函数调用的实际参数出现。这种情况是 把该函数的返回值作为实参进行传送,因此要求该函数必须是有 返回值的。 例如: printf("%d",max(x,y)); 把max函数调用的返回值又作为printf函数的实参来使用
清华大学出版社 TSINGHUA UNIVERSITY PRESS 74函数的调用 2函数调用的方式 【例71】函数的定义、声明及调用举例。 include<stdio h> int max(int a, int b) input two numbers: if(a>breturn a; 8 else return b: maxnum =8 Press any key to continue void maino i int max(int a, int b) int x, y, z; printf(" input two numbers: In"); scanf(%d%d", &x, &y); z=max(X,y); printf("maxmum=%dn, z) 返回本章首页
14 返回本章首页 7.4 函数的调用 2.函数调用的方式 【例7_1】函数的定义、声明及调用举例。 #include<stdio.h> int max(int a,int b) { if(a>b)return a; else return b; } void main() { int max(int a,int b); int x,y,z; printf("input two numbers:\n"); scanf("%d%d",&x,&y); z=max(x,y); printf("maxmum=%d\n",z); }