当前位置: 代码迷 >> C语言 >> 为什么我不能实现两个参数交换啊??
  详细解决方案

为什么我不能实现两个参数交换啊??

热度:107   发布时间:2007-09-25 17:55:41.0
以下是引用死了都要C在2007-9-14 16:07:14的发言:

形参和实参````采用的是值传递```
X=10,Y=20``穿给A,B
A=10,B=20``在swap里``AB交换了```
A=20,B=10``但是main里``XY没变```

你在main里P出XY``当然不能得到你要的结果```
你的程序可以样改``

#include<stdio.h>
int main(void)
{
int swap(int a,int b);
int x,y;

x=10;y=20;

swap(x,y);

getchar(); -------------加上它看结果``
return 0;

}
void swap(int a,int b)
{
int m;

if(a<b)
{m=a;a=b;b=m;}

printf("%d,%d",a,b);

return ;
}


这个程序有些有趣
果然c是自由者
把那int改为void可以运行了


----------------解决方案--------------------------------------------------------
是不是没有返回值呢?
----------------解决方案--------------------------------------------------------