作业帮 > 综合 > 作业

void fun(int *a,int *b) { int *c; c=a;a=b;b=c; } main() { in

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/05/28 23:56:02
void fun(int *a,int *b) { int *c; c=a;a=b;b=c; } main() { int x=3,y=5,*p=&x,*q=&y; fun(p,q);...
void fun(int *a,int *b)
{
int *c;
c=a;a=b;b=c;
}
main()
{
int x=3,y=5,*p=&x,*q=&y;
fun(p,q); printf("%d,%d,",*p,*q);
fun(&x,&y); prin"%d,%d\n",*p,*q);
}

两次函数调用明明传递的是地址,为什么不能交换两个数的值
void fun(int *a,int *b) { int *c; c=a;a=b;b=c; } main() { in
fun中 a的值是x的地址 b的值是y的地址 记住 a和b的值也是复制过来的 然后 你把他们的值交换了 想想看和x和y的地址有什么关系呢?你在函数中 应该用int c;c=*a;*a=*b;*b=c;
这样就通过地址修改了地址中的值