函数名(实参列表);
实参可以是常数、变量、表达式等,多个实参用逗号 , 分隔。 在C语言中,函数调用的方式有多种,例如: // 函数作为表达式中的一项出现在表达式中z = max(x, y);m = n + max(x, y);// 函数作为一个单独的语句printf("%d", a);scanf("%d", &b);// 函数作为调用另一个函数时的实参printf( "%d", max(x, y) );total( max(x, y), min(m, n) ); 在函数调用中还应该注意的一个问题是求值顺序。所谓求值顺序是指对实参列表中各个参数是自左向右使用呢,还是自右向左使用。对此,各系统的规定不一定相同。 【示例】在VC6.0和C-Free 5.0下运行以下代码。 #include <stdio.h>int main(){ int i=8; printf("%d %d %d %d\n",++i,++i,--i,--i); return 0;} 运行结果: 8 7 6 7 可见VC 6.0是按照从右至左的顺序求值。如果按照从左至右求值,结果应为: 9 10 9 8返回值类型 函数名( 类型 形参, 类型 形参… );
或为:返回值类型 函数名( 类型, 类型…);
函数声明给出了函数名、返回值类型、参数列表(参数类型)等与该函数有关的信息,称为 函数原型( Function Prototype ) 。 函数原型的作用是告诉编译器与该函数有关的信息,让编译器知道函数的存在,以及存在的形式,即使函数暂时没有定义,也不会出错。 更改上面的代码,将 factorial 和 sum 函数的定义放到 main 函数后面: 纯文本复制 #include <stdio.h>// 函数声明long factorial(int n); //也可以写作 long factorial(int);long sum(long n); //也可以写作 long sum(long);int main(){ printf("1!+2!+...+9!+10! = %ld\n", sum(10)); return 0;}//求阶乘long factorial(int n){ int i; long result=1; for(i=1; i<=n; i++){ result *= i; } return result;}// 求累加的和long sum(long n){ int i; long result = 0; for(i=1; i<=n; i++){ //嵌套调用 result += factorial(i); } return result;} 运行结果: 1!+2!+...+9!+10! = 4037913