void f(int y,int*x) {y=y+*x; *x=*x+y;} void main(

2025-01-08 06:36:47
推荐回答(1个)
回答1:

void f(int y, int *x) {
y = y + *x;
// 形参y,x和实参y,x存储地址不同,改变形参的值对实参没有影响。
// y=y+x=6
*x = *x + y;
// *x的值就是主函数里实参x的值
// *x=2+4=6
}
void main() {
int x = 2, y = 4;
f(y, &x);
// f()函数中只改变了x的值,没有改变y的值。也就是只有向函数传递某个值的指针才能改变这个值
printf("x=%d,y=%d\n", x, y);
}
// 运行结果x=8,y=4