int fun(int a,int b,int c)里的a,b,c是形参 只在fun函数中有效
int fun(int a,int b,int c)//形参abc接收传过来的数值
{
int t;
printf("%d",a+b+c);//这里的abc是形参中的abc并不是主函数中的abc
}
void main()
{
int a, b ,c;//定义abc三个变量 在主函数main中有效
int m;
a=1;b=2;c=3;
m=fun(a,b,c);//将主函数中的abc三个变量的值传给函数fun
printf("%d",m);
}
他们最大的区别就是作用的范围不同 实际上就是名字相同而已
把fun函数中的abc改为其他名称看起来就很明显了
int a,b,c;是声明变量 作用域相对较大
int fun(int a,int b,int c) 是作为参数 作用域只在函数内 出了函数无效
#include
int fun(int a,int b,int c)//这是形式参数,作用域仅限于fun()函数
{
return a*b*c;
}
int main()
{int a,b,c; //这是实参形式存在,作用域为整个函数main
int sum;
int chengji;
scanf("%d%d%d",&a,&b,&c);
sum=a+b+c;
chengji=fun(a,b,c);//a,b,c 作为实参传给被调函数 int fun(int a,int b,int c)
printf("%d+%d+%d=%d",a,b,c,sum);
printf("%d*%d*%d=%d",a,b,c,chengji);
return 0;
}
int a,b,c
是定义变量
int fun(int a,int b,int c)
这是一个函数
这里的2个 a b c 完全没有任何关系
int fun(int a,int b,int c)
{
printf("d%d%d%",a,b,c);
}
main()
{
int a,b,c
a=1;
b=2;
c=3;
fun(a,b,c);
fun(b,c,a);
fun(c,b,a);
}