#include<stdio.h>
int x,y,z;
void p(int *x,int y)
{
--*x;
y++;
z=*x+y;
}
int main()
{
x=5;
y=2;
z=0;
p(&x,y);
printf("%d,%d,%d#",x,y,z);
p(&y,x);
printf("%d,%d,%d",x,y,z);
return 0;
}
记住一个原则,参数传递时,如果传递的是地址(带&),在函数里面值会被修改,如果传递的是值(不带&),那就值不会被修改
所以p(&x,y); x的值被修改为4,y的值不变,z的值编程7
p(&y,x);y被修改为1,x是4不会被改变,z变成6
望采纳!谢谢
p(&x,y),经过函数后,x的值成了4。y和z都是局部变量,它们的值并没有改变,在下一次使用时仍未原值