标题:[求助]函数单向传值的问题
取消只看楼主
下雨浇花
Rank: 1
等 级:新手上路
帖 子:134
专家分:0
注 册:2007-9-19
结帖率:100%
 问题点数:0 回复次数:3 
[求助]函数单向传值的问题
为什么SWAP()的值不能传出来,应该如何改
#include <stdio.h>
main()
{
void swap(int x,int y);
int a,b;
a = 5;
b = 9;
if(a < b)swap(a,b);
printf("'a' is %d\n'b' is %d\n",a,b);
system("pause");
}
void swap(int x,int y)/*交换函数*/
{
int temp;
temp = x;
x = y;
y = temp;
}
/*swap()的值不能传出来*/

不用指针和数组,如何改才能把函数的值传出来
搜索更多相关主题的帖子: 函数 int 传值 swap temp 
2007-10-22 21:39
下雨浇花
Rank: 1
等 级:新手上路
帖 子:134
专家分:0
注 册:2007-9-19
得分:0 
以下是引用canyue在2007-10-22 22:44:15的发言:

[IMG]http://fm171.img.xiaonei.com/pic001/20071022/22/43/head_18374g169.jpg[/IMG]

图片太小了
#include <stdio.h>
static int a,b;
int main()
{
void swap(int x,int y);
//static int a,b;
a = 5;
b = 9;
if(a < b)swap(a,b);
printf("'a' is %d\n'b' is %d\n",a,b);
getchar();
//system("pause");
}
void swap(int x,int y)/*交换函数*/
{
int temp;
temp = x;
x = y;
y = temp;
a=x;
b=y;

}
/*swap()的值不能传出来*/



现在可以了


如果这样的话,我不用swap()函数好了,直接在主函数里比较好了


花不浇,长不大;雨不下,不浇花...
2007-10-23 12:38
下雨浇花
Rank: 1
等 级:新手上路
帖 子:134
专家分:0
注 册:2007-9-19
得分:0 
以下是引用yangzhifu在2007-10-22 22:22:58的发言:
这是函数的生存周期问题
void swap(int x,int y)/*交换函数*/
{
int temp;
temp = x;
x = y;
y = temp;
}
这个函数在执行完后它的生存周期就完了,如果要交换要用指针来改变地址,才能的到实现!

没有其他办法了吗?


花不浇,长不大;雨不下,不浇花...
2007-10-23 12:39
下雨浇花
Rank: 1
等 级:新手上路
帖 子:134
专家分:0
注 册:2007-9-19
得分:0 
哦,原来是这样子,谢谢楼上各位了
学到东西了

花不浇,长不大;雨不下,不浇花...
2007-10-23 14:30



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-179901-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.364053 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved