main主函数里的变量也是局部变量马?

来源:百度知道 编辑:UC知道 时间:2024/06/25 01:54:24
如int a=3,b=5; /*a,b为外部变量*/
max(int a,int b) /*a,b为外部变量*/
{int c;
c=a>b?a:b;
return(c);
}
main()
{int a=8;
printf("%d\n",max(a,b));
只有 inta=3 ,intb=5是全局变量马?第二行的意思就是说形参来自全局变量?

只有int a=3,b=5;是全局变量
max(int a,int b)中,由于你的形参名字和全局变量的名字取得一样了,所以当程序进入到max 函数时,全局变量是不可见的,可见的只是你的局部变量
这里你的函数和这个函数是等价的
max(int x,int y)
{
int c;
c=x>y?x:y;
return c;
}

但是,这样就不一样了
max(int x,int y)
{
int c;
c=a>b?a:b;
return c;
}
这个函数里面的a b就是全局变量啦

建议你仔细看一下变量的作用域,
相信你会有所收获

你这个main()函数里的max(a,b)调用的参数是你在main()函数里定义的;
也就是说在main()函数里的max(a,b)中的a=8;