int x1=30,x2=40;讲解一下过程谢谢

int x1=30,x2=40;讲解一下过程谢谢
int x1=30,x2=40;
main()
{int x3=10,x4=20;
Sub(x3,x4);
Sub(x2,x1);
Printf("%d,%d,%d,%d\n",x3,x4,x1,x2);
}
sub(int x1,int x3)
{x2=x1;
X1=x3;
X3=x2;

要理解这道题,你需要理解局部变量的作用域,和全局变量的作用域,还有更重要的一点事,局部变量会屏蔽掉全局变量,函数的形参和调用是按顺序一一对应,不是按形参的参数名来传值。追问

能再仔细讲解一下局部变量和全局变量吗

追答

sub函数里,x1,x3是局部变量(函数的形参是函数内部的变量,x1屏蔽了全局变量的x1),x2是全局变量(因为x2在sub里面没有申明),主函数里,x3,x4是局部变量,在输出的时候,x3与x4作为局部变量被输出,x1,与x2作为全局变量被输出,至于为什么x3,x4的值没有变化,是应为传递的时候,相当于复制了一份给形参,而原数没有变。

温馨提示:答案为网友推荐,仅供参考
相似回答