如题,希望能解释一下

来源:百度知道 编辑:UC知道 时间:2024/06/27 15:02:29
有以下程序
viod fun (int a,int b,int c)
{a=456;b=567;c=678;}
main()
{
int x=10,y=20,z=30;
fun (x,y,z);
printf("%d,%d.%d",x,y,z);
}
输出结果是
A)30,20,10
B)10,20,30
C)456,567,678
D)678,567,456

B

viod fun (int a,int b,int c)
{a=456;b=567;c=678;}
上述子函数中的赋值,只是对于fun()函数中作为参数声明的局部变量a,b,c产生影响,对于main函数中的x,y,z值没有任何影响。

fun (x,y,z);
这一句调用,对于a,b,c来讲,只是先将x,y,z的值作为初始值传递给a,b,c,
并不影响x,y,x本身

所以最后输出为:
10,20,30

选B
因为形参的改变并不影响实参!