| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2467 人关注过本帖
标题:请问a和b的值为什么没有交换?(在线等答案)
只看楼主 加入收藏
艾森
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-5-10
收藏
 问题点数:0 回复次数:27 
请问a和b的值为什么没有交换?(在线等答案)
#include "Stdio.h"
#include "Conio.h"

void fun(int *a, int *b)

{

int *k;

k=a; a=b; b=k;

}

main(){

int a=3, b=6, *x=&a, *y=&b;

fun(x,y);

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

getch();

}
运行结果是:3,6
搜索更多相关主题的帖子: int fun include void 在线 
2008-04-15 14:59
艾森
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-5-10
收藏
得分:0 
I'AM HERE,RIGHTING FOR YOU !

2008-04-15 15:07
yxwsbobo
Rank: 5Rank: 5
等 级:职业侠客
帖 子:345
专家分:306
注 册:2007-10-29
收藏
得分:0 
k=*a; *a=*b; *b=k;
你这个意思吧

How are you 怎么是你?
How old are you   怎么老是你?
2008-04-15 15:23
艾森
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-5-10
收藏
得分:0 
[bo]以下是引用 [un]yxwsbobo[/un] 在 2008-4-15 15:23 的发言:[/bo]

k=*a; *a=*b; *b=k;
你这个意思吧

为什么这样a和b就交换呢,而“k=a,a=b,b=k”就不变呢?解释一下啊

[[it] 本帖最后由 艾森 于 2008-4-15 15:33 编辑 [/it]]

2008-04-15 15:28
engolll
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-4-15
收藏
得分:0 
你那k=a; a=b; b=k;交换的是地址,所以不会变,*x=&a, *y=&b;这个好像也有点错。。
2008-04-15 15:34
yd4433
Rank: 1
等 级:新手上路
帖 子:404
专家分:0
注 册:2008-3-9
收藏
得分:0 
#include "Stdio.h"
#include "Conio.h"

void fun(int *a, int *b)

{
 int k;


k=*a; *a=*b; *b=k;

}

main(){

int a=3, b=6, *x=&a, *y=&b;

fun(x,y);

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

getch();

}对比 下就知道你那里错了  自定义函数船参穿地址是没错 但是调换错了

------...-.-..-...-----........-------.......----.....------....||- - !
2008-04-15 15:38
sunlw0302
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-4-15
收藏
得分:0 
函数改下void fun(int *a, int *b)

{

int k;

k=*a; *a=*b; *b=k;

}
2008-04-15 15:39
艾森
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-5-10
收藏
得分:0 
[bo]以下是引用 [un]engolll[/un] 在 2008-4-15 15:34 的发言:[/bo]

你那k=a; a=b; b=k;交换的是地址,所以不会变,*x=&a, *y=&b;这个好像也有点错。。

*x=&a, *y=&b 初始化情况下可以的。
传地址不会改变指向那个数的值,是的吗?

2008-04-15 15:39
sunlw0302
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-4-15
收藏
得分:0 
交换的是指针变量本身的值而不是他所指向的内容
2008-04-15 15:40
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
收藏
得分:0 
fun(x,y)
x, y是实参。函数不改变实参的值。

前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。
2008-04-15 15:41
快速回复:请问a和b的值为什么没有交换?(在线等答案)
数据加载中...
 
   



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

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