读书人

帮忙做个比较,该如何处理

发布时间: 2012-02-08 19:52:21 作者: rapoo

帮忙做个比较
目的是要交换两个变量的值。
程序一:
#include <stdio.h>
#include <stdlib.h>
void swap (int x,int y)
{
int i;
i=x;x=y;y=i;
return ;
}
int main()
{
int a,b,t;
a=10;
b=20;
swap (a,b);
printf ( "a=%db=%d ",a,b);
system ( "PAUSE ");
return 0;
}
程序二:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b,t;
a=10;
b=20;
t=a;a=b;b=t;
printf ( "a=%db=%d ",a,b);
system ( "PAUSE ");
return 0;
}
这两个有何不同?如果有,那是为什么?多谢了!


[解决办法]
第一个是错的,应该改为

void swap (int& x,int& y)
{
int i;
i=x;x=y;y=i;
return ;
}
[解决办法]
结果不一样啊!第一个没有交换成功,第二个交换成功,因为第一个是函数形势,是值传递类型,不改变原来的参数!

读书人网 >C语言

热点推荐