C语言函数调用问题,下面是例子。当形参和实参定义的变量重名的时候,会不会发生冲突?为什么?

#include <stdio.h>
int main()
{
int max(int x,int y);
int x,y,z;
scanf("%d%d",&x,&y);
z=max(x,y);
printf("%d,%d,%d\n",z,x,y);
return 0;
}
int max(int x,int y)
{
x=x>y?x:y;
return (x);
}

不会发生冲突。但主要是你不要被其困惑就是真的要做的了。
因为这是C语言设计中的一个应用。作用域的应用含义。
函数所带参数的作用域只在该函数体中起到作用。就相当于,函数内部声明的两个变量。是局部变量。
主函数中的变量定义又是主函数当中的作用域。主函数中变量的作用域是全局变量
两者自然不会冲突。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-27
不会冲突。
像这种简单类型的,你就直接可以认为形参就是函数的局部变量,在两个不同的函数中,其局部变量重名是不会相互干扰的。
就像上面的代码,实参是main函数的局部变量,形参是max函数的局部变量。
第2个回答  2011-11-27
形参和实参重名不会冲突,这个你可以这样理解:函数调用时形参会临时开辟内存,将实参值放进去进行操作,在这个函数中形参就相当于这个函数的局部变量 不会对实参有任何影响 自然可以随便起名儿了
第3个回答  2011-11-27
不会
函数体内声明的变量专属于此函数,其他函数不能对这些变量进行检查和修改。
实际参数是通过值传递的:调用函数时,计算出每个实际参数的值并且把他们赋值给形式参数。在函数执行过程中,对形式参数的改变不会影响实际参数的值,因为形式参数包含的是实际参数的副本。
第4个回答  2011-11-27
不会冲突。。你这个程序可以执行的。。一个变量只能定义一次。。默认第一次定义、、、
相似回答