1.函数调用的一般形式
函数调用的一般形式为:
函数名([实参列表])
如果是调用无参函数,则没有“实参列表”,但括号不能省略
如果实参列表包含多个实参,则各参数间用逗号隔开
实参与形参的个数应相等,类型应匹配(相同或赋值兼容)
实参与形参按顺序对应,一对一地传递数据
2.函数调用的方式
按函数在语句中的作用来分,可以有以下3种函数调用方式:
(1)函数语句
在函数调用后面加一个分号,构成一个语句,即把函数调用单独作为一个语句,并不要求函数带回一个值,只是要求函数完成一定的操作
(2)函数表达式
函数出现在表达式中,这时要求函数带回一个确定的值以参加表达式的运算。如:c=2*mx(a,b)
注意,如果函数没有返回值,则不能将函数调用放到一个表达式进行运算
(3)作为函数参数:函数调用可以作为另一个函数的实参,同样要求函数有返回值
如:
//mx(b,c)是函数调用,其值作为外层mx函数调用的一个实参
m = mx(a,mx(b,c));
3.对被调用函数的声明和函数原型
如果函数的定义出现在函数调用语句之后,则必须在函数调用语句之前对函数进行声明
例如,如果main函数调用了mx函数,而mx函数的定义出现在main函数之后,则必须在函数调用语句(如“c=mx(a,b);”)之前对mx函数进行声明,否则会出现编译错误,提示:标识符"mx"未声明
对mx函数进行声明的语句可以放在main函数里,也可以放在main函数之前,只要保证出现在mx函数调用语句之前就可以
函数声明其实就是取了函数定义的第一行,然后加分号。这种函数声明就是函数原型
具体来说,函数的声明有两种格式:
函数类型 函数名(参数类型1,参数类型2,…);
函数类型 函数名(类型名 参数名1,类型名 参数名2,…);
也就是说,在对函数进行声明时,形参名是可以省略的。即使写上,甚至声明时的形参名跟定义时的形参名不一致,也是可以的,因为声明时的形参名在编译时是忽略的