5.2.3 函数的调用
函数在被定义后,不能直接运行,只有该函数被调用时才能执行该函数的功能,否则,该函数在程序中只是一段静态的代码,不起任何作用。
函数调用过程比较复杂,例5.4中执行了函数的调用过程。
例5.4 求三个整数的最大值。
程序如下:
程序运行结果如下:
上述程序中定义了两个函数:主函数main()和自定义函数maxnum(),程序运行流程如图5-2所示。可以看出:在main()函数中分别调用了scanf()函数、maxnum()函数和printf()函数,因此,main()函数称为主调函数,其他三个函数称为被调函数。
图5-2
1.函数调用的一般形式
C语言中,函数的一般调用形式如下:
其中实参表列的形式为:实际参数1,[实际参数2,…]
例如:
注意:
①实参可以是常量或变量,也可以是各种表达式。
②实际参数的个数和类型应该与函数定义时的形式参数的个数和类型一致,并一一对应。
例如:
③调用无参函数时,不能有实参表列。
2.函数调用的具体方式
(1)函数语句。
函数语句就是在主调函数中把被调函数作为一条语句来执行。其一般形式为:
函数名(实际参数表);
这种方式常用于调用一个可以忽略返回值或没有返回值的函数。如程序中常用到的scanf()函数和printf()函数。
(2)函数表达式。
被调函数出现在主调函数的某个表达式中,这种表达式称为函数表达式。其一般形式为:
变量名=函数表达式;
这种方式主要用于调用带返回值的函数,函数的返回值将参加表达式的运算。如程序中的max=maxnum(i,j,k);
(3)函数实参。
被调函数在主调函数中作为另一个函数调用的实参出现,这种方式是把该函数的返回值作为实参进行传送,因此,要求该被调函数必须有返回值。如:max=fmax(a,fmax(b,c));
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。