fun(int x,int y,int z) {z=x*x+y*y;} main() {int a=31; fun(5,2,a); printf("%d",a); } a的值为多少?

是29还是31?说明一下理由,谢谢。
2025-01-05 05:42:38
推荐回答(3个)
回答1:

31
你定义的函数fun没有返回值,而且参数不是引用型的,所以形参的改变不会影响实参,即a的值,输出的是31

回答2:

是31
a=31;
fun(5,2,a);
是把a的值赋值给z
z是形参,z的值改变不影响a的值的改变,运行结束后,
a的值仍然是31不变。

回答3:

31,a的值没有变过,fun函数里用的z只是用了a值,改它没有改a.