#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()的值不能传出来*/
不用指针和数组,如何改才能把函数的值传出来
----------------解决方案--------------------------------------------------------
为什么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()的值不能传出来*/
不用指针和数组,如何改才能把函数的值传出来
不用指针和数组???你还想怎么改阿?
----------------解决方案--------------------------------------------------------
这是函数的生存周期问题
void swap(int x,int y)/*交换函数*/
{
int temp;
temp = x;
x = y;
y = temp;
}
这个函数在执行完后它的生存周期就完了,如果要交换要用指针来改变地址,才能的到实现!
----------------解决方案--------------------------------------------------------
[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()的值不能传出来*/
现在可以了
[此贴子已经被作者于2007-10-22 22:45:47编辑过]
----------------解决方案--------------------------------------------------------
好像还是不能得到正确结果。。。。。。。。。。。
----------------解决方案--------------------------------------------------------
[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()函数好了,直接在主函数里比较好了
----------------解决方案--------------------------------------------------------
这是函数的生存周期问题
void swap(int x,int y)/*交换函数*/
{
int temp;
temp = x;
x = y;
y = temp;
}
这个函数在执行完后它的生存周期就完了,如果要交换要用指针来改变地址,才能的到实现!
没有其他办法了吗?
----------------解决方案--------------------------------------------------------
值传递又不用引用的话应该就不行了.
----------------解决方案--------------------------------------------------------
#include "stdio.h"
void swap(int x,int y);
main()
{
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;
}
这样不行吗??
----------------解决方案--------------------------------------------------------
传值,形参变不影响实参,引用则,一变都变
----------------解决方案--------------------------------------------------------