当前位置: 代码迷 >> C语言 >> [求助]关于指针传递的过程!
  详细解决方案

[求助]关于指针传递的过程!

热度:76   发布时间:2007-08-12 15:38:15.0
[求助]关于指针传递的过程!
我想实现两个数交换,
请各为大虾指点以下两个程序中哪个不能实现交换!谢谢!
main()
{ int *a=0,*b=0;
*a=10,*b=20;
swap(a,b);
printf("%d,%d\n",*a,*b);
}
swap(int *p,int *q)
{ int t;
t=*p;*p=*q;*q=t;
}
第二个
main()
{ int a=10,b=20,*x=0,*y=0;
*x=&a,*y=&b;
swap(x,y);
printf("%d,%d\n",a,b);
}
swap(int *p,int *q)
{ int t;
t=*p;*p=*q;*q=t;
}
搜索更多相关的解决方案: int  指针  swap  main  

----------------解决方案--------------------------------------------------------

都不可以


----------------解决方案--------------------------------------------------------

地址和值。

这是相当模糊的.....


----------------解决方案--------------------------------------------------------
以下是引用qwerty1217在2007-8-12 15:38:15的发言:
我想实现两个数交换,
请各为大虾指点以下两个程序中哪个不能实现交换!谢谢!
main()
{ int *a=0,*b=0;
*a=10,*b=20;--------------指针要存放变量的地址!!
swap(a,b);
printf("%d,%d\n",*a,*b);
}
swap(int *p,int *q)
{ int t;
t=*p;*p=*q;*q=t;
}
第二个
main()
{ int a=10,b=20,*x=0,*y=0;
*x=&a,*y=&b;----------------x=&a;y=&b;
swap(x,y);
printf("%d,%d\n",a,b);
}
swap(int *p,int *q)
{ int t;
t=*p;*p=*q;*q=t;
}

所以都不可以!!


----------------解决方案--------------------------------------------------------

谢谢,各位!
能解释以下原因吗?
出了地址赋值有问题以外!


----------------解决方案--------------------------------------------------------
以下是引用viky2003在2007-8-12 15:54:11的发言:

所以都不可以!!

你修正的函数声明写上没有?


----------------解决方案--------------------------------------------------------


不是很懂!
详细!


----------------解决方案--------------------------------------------------------
两个都不行的.
这个问题很模糊.
----------------解决方案--------------------------------------------------------
  相关解决方案