标题:为什么x3和x4的值不互换
只看楼主
nanchangdaxu
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-4-30
得分:0 

函数里面的东西释放了,用数组或指针完成.


世上无难事,只要肯登攀!
2007-05-11 17:57
chrong007
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-5-7
得分:0 

把swap(int x,int y)改为void swap(int &x,int &y)就可以了 .

2007-05-12 00:41
weikaifeng
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-5-12
得分:0 
回复:(ycxue46)为什么x3和x4的值不互换
形参的变化,不会引起实参的变化.
在此调用函数中,相当形参引用实参复制出来的复制品.
这个函数目的是要返回变化后的x3,x4值,
不能用return语句,以为return只能返回一个值,
由于x3,x4是定义在被调用函数中,
所以其作用域只现在在被调用函数中,
所以可定义x3,x4为全局变量,扩大其作用域.
2007-05-12 14:12
编程怪兽
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-4-28
得分:0 
用指针可以解决的

2007-05-12 14:35
VanGogh
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-5-27
得分:0 

貌似楼主是比我还新的新手 地址传递

2007-05-12 15:13
chrong007
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-5-7
得分:0 
#include<stdio.h>
#include<conio.h>
void swap1(int &x,int &y)
{
int x1;
x1=x;
x=y;
y=x1;
printf("%d,%d\n",x,y);
}
/*void swap2(int *x,int *y) //指针传址
{
int x1;
x1=*x;
*x=*y;
*y=x1;
printf("%d,%d\n",*x,*y);
}*/
int main()
{
int x3=5,x4=6;
swap1(x3,x4);/*swap2(&x3,&x4);*/
printf("%d,%d\n",x3,x4);
getch();
return 0;
}
2007-05-12 18:37
yesterday8
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-2-21
得分:0 

或者你不用指针做,再定义2个变量就可以了


2007-05-12 20:06



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




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

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