作业帮 > 综合 > 作业

#include void main( ) { int a=3,b=5; int *p,*q; void f1(int

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/27 22:21:36
#include void main( ) { int a=3,b=5; int *p,*q; void f1(int x,int y);
void f2(int *x,int *y);
p=&a; q=&b;
f1(*p,*q) ;
printf("a=%d ,b=%d\n",a,b);
f2(p,q);
printf("a=%d ,b=%d\n",a,b);
}
void f1(int x,int y)
{ int t;
t=x; x=y; y=t;
}
void f2(int *x,int *y)
{ int t;
t=*x;*x=*y; *y=t;
}
程序运行后的输出结果是:
a=3 ,b=5
a=5 ,b=3
再问: 可以详细解释一下吗?
再答: void f1(int x, int y) x,y传进去的都是临时变量,出函数体后值不变;还是a=3 ,b=5 void f2(int *x, int *y) 传进去指针了,变化是啥就是啥了。。变成a=5 ,b=3
再问: f1(*p,*q),传进去不是x=*p,y=*q吗?
再答: x=*p,y=*q;;;; *p得到的是值,记住,是值。。