C语言程序中函数是可以互相调用的。所谓函数调用就是在一个函数体中引用另外一个已经定义了的函数,前者称为主调用函数,后者称为被调用函数。函数调用的一般形式为:
函数名(实际参数表)
其中,“函数名”指出被调用的函数。
“实际参数表”中可以包含多个实际参数,各个参数之间用逗号隔开。实际参数的值被传递给被调用函数中的形式参数。需要注意的是,函数调用中的实际参数与函数定义中的形式参数必须在个数、类型及顺序上严格保持一致,以便将实际参数的值正确地传递给形式参数。否则在函数调用时会产生意想不到的结果。如果调用的是无参函数,则可以没有实际参数表,但圆括号不能省略。
在C语言中可以采用三种方式完成函数的调用。
(1)函数语句
在主调函数中将函数调用作为一条语句,例如:
fun1();
这是无参调用,它不要求被调用函数返回一个确定的值,只要求它完成一定的操作。
(2)函数表达式
在主调函数中将函数调用作为一个运算对象直接出现在表达式中,这种表达式称为函数表达式。例如:
c=power(x,n)+power(y,m);
这其实是一个赋值语句,它包括两个函数调用,每个函数调用都有一个返回值,将两个返回值相加的结果,赋值给变量c。因此这种函数调用方式要求被调函数返回一个确定的值。
(3)函数参数
在主调函数中将函数调用作为另一个函数调用的实际参数。例如:
y=power(power(i,j),k);
其中,函数调用power(i,j)放在另一个函数调用power(power(i,j),k)的实际参数表中,以其返回值作为另一个函数调用的实际参数。这种在调用一个函数的过程中又调用了另外一个函数的方式,称为嵌套函数调用。在输出一个函数的值时经常采用这种方法,例如:
printf("%d",power(i,j));
其中,函数调用power(i,j)是作为printf()函数的一个实际参数处理的,它也属于嵌套函数调用方式。