C语言形参和实参问题?

2025-04-04 20:20:09
推荐回答(3个)
回答1:

你虽然传入了3和4,但是形参在add中又重新赋值了,相当于你传入的值被覆盖了,结果自然就是10+80=90;可以改下你的add函数看的更清楚
int add(int x,int y) {
int sum;
printf("before:x=%d y=%d\n",x,y);
x=10;
y=80;
printf("after:x=%d y=%d\n",x,y);
sum=x+y;
return sum;
}

回答2:

函数体 里 x,y 被重新赋值 了
没有这样的
去掉 函数体 里 x,y 被重新赋值 两句

回答3:

add函数的返回值永远是10+80
输入的形参被重新赋值,将函数里面的两个赋值语句去掉就行了