函数调用方式
1、函数语句调用的方式
调用函数作为一个独立的语句放在主函数main()中,其中函数没有返回值
void f()
{
int a=1;
a++;
printf("%d",a);
}
void main()
{
f();
}
2、函数表达式调用方式
将函数用于表达式的计算,其中函数都有一个确定的返回值,用来参与表达式的计算。
int main()
{
int a;
s=(m>n)?m:n;
return (s);
}
void main()
{
int x=20,y=30,z;
z=10*max(x,y);
printf("z=%d",z);
}
将max函数应用于表达式10*max(x,y)中,其中max()函数返回x和y中的较大者,再乘以10计算得出结果。
3、函数参数调用方式
这种方式是将函数作为另一个函数参数,其中函数必须有一个返回的值,用来作为函数的参数。
int f(int n)
{
int y=1;
while(n>1)
y=y*n;
return(y);
}
void main()
{
int x;
scanf("%d",&x);
printf("%d!=%d",x,f(x));
4、库函数调用的方式
#include <stdio.h>
void main()
{
int x,y;
scanf("%d",&x);
y=fabs(x);
printf("%d",y);
}
调用数学库中的函数fabs(),其功能为返回一个数的绝对值,在引用该函数之前必须要先包含math.h头文件
全局变量可以被多个函数使用,但由于全局变量可被多个函数使用,其值很容易改变。当很多函数使用全局变量时,程序就很容易出错。
在程序中,若全局变量与局部变量同名,则会引起冲突,局部变量在其作用域内会掩盖全局变量。
全局变量的作用域为其定义位置到程序的末尾,其生存期为程序的开始至结束。
注意:
(1) 传值方式是将实参的值传递给形参。形参可以与实参同名,形参值的变化不会影响实参值的变化。
(2)传值方式中return语句只能返回一个值。
传址方式
是将实参的地址传递给形参。
变量地址做实参
传址方式是指将变量的地址传递给形参,对变量的地址进行操作。因此传址方式中形参值的变化会影响实参的值。
2、一维数组名作实参
一维数组名表示数组的首地址,因此可以作为实参传递给函数
3、字符串作实参
字符串作为实参,形参应为字符型的指针变量。