2 函数的调用
2.1 函数的简单调用
Turbo C2.0调用函数时直接使用函数名和实参的方法, 也就是将要赋给被调用
函数的参量, 按该函数说明的参数形式传递过去, 然后进入子函数运行, 运行结束
后再按子函数规定的数据类型返回一个值给调用函数。使用Turbo C2.0的库函数就
是函数简单调用的方法。举例说明如下:
例1:
#include
int maxmum(int x, int y, int z); /*说明一个用户自定义函数*/
int main()
{
int i, j, k;
printf("i, j, k=?\n");
scanf("%4d%4d%4d", &i, &j, &k);
maxmum(i, j, k);
getch();
return 0;
}
maxmum(int x, int y, int z)
{
int max;
max=x>y?x:y;
max=max>z?max:z;
printf("The maxmum value of the 3 data is %d\n", max);
}
2.2 函数参数传递
一、调用函数向被调用函数以形式参数传递
用户编写的函数一般在对其说明和定义时就规定了形式参数类型, 因此调用这
些函数时参量必须与子函数中形式参数的数据类型、顺序和数量完全相同, 否则在
调用中将会出错, 得到意想不到的结果。
注意:
当数组作为形式参数向被调用函数传递时, 只传递数组的地址, 而不是将整个
数组元素都复制到函数中去, 即用数组名作为实参调用子函数, 调用时指向该数组
第一个元素的指针就被传递给子函数。因为在Turbo C2.0中, 没有下标的数组名就
是一个指向该数组第一个元素的指针。当然数组变量的类型在两个函数中必须相同。
用下述方法传递数组形参。
例2:
#include
void disp(int *n);
int main()
{
int m[10], i;
for(i=0; i<10; i++)
m[i]=i;
disp(m); /*按指针方式传递数组*/
getch();
return 0;
}
void disp(int *n)
{
int j;
for(j=0; j<10; j++)
printf("%3d", *(n++));
printf("\n");
}
另外, 当传递数组的某个元素时, 数组元素作为实参, 此时按使用其它简单变
量的方法使用数组元素。例2按传递数组元素的方法传递时变为:
#include
void disp(int n);
int main()
{
int m[10], i;
for(i=0; i<10; i++){
m[i]=i;
disp(m[i]); /*逐个传递数组元素*/
}
getch();
return 0;
}
void disp(int n)
{
printf("%3d\t");
}
这时一次只传递了数组的一个元素。