#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的值编程7p(&y,x);y被修改为1,x是4不会被改变,z变成6
望采纳!谢谢
报告相同问题?