| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1423 人关注过本帖
标题:[求助]求助,关于交换指针的问题
取消只看楼主 加入收藏
saltfish_007
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-10-21
收藏
 问题点数:0 回复次数:6 
[求助]求助,关于交换指针的问题

如下是我的程序:
#include<iostream.h>
void swap(int *,int *);

void main()
{int b=3;int d=8;

cout<<"b="<<b<<".d="<<d<<endl;
int *a=&b;int *c=&d;
swap(a,c);

cout<<"b="<<*a<<".d="<<*c<<endl;
}

void swap(int *x,int *y)
{int *temp=x;
x=y;
y=temp;
}

请各位大侠帮帮忙,指出为什么我的b和d不能交换值?
万分感谢!

搜索更多相关主题的帖子: 指针 
2006-10-22 13:51
saltfish_007
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-10-21
收藏
得分:0 
大侠,很谢谢你帮助我解决这个问题,但是我想得到的结果是自定义一个交换指针,不是通过值交换,而是通过地址交换,然后用主函数引用这个自定义函数。你现在给我的答案是将自定义函数加到了主函数里面的。所以,你能否按我的思路写一个程序呢?依然非常谢谢!
2006-10-23 01:24
saltfish_007
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-10-21
收藏
得分:0 

我有个朋友给了我一个程序
不需要用到2级指针的
试了一下,可以,但是自定义函数那里看不懂,请帮忙解释一下好吗?谢谢

#include<iostream.h>
void swap(int *,int *);

void main()
{int b=3;int d=8;
cout<<"b="<<b<<".d="<<d<<endl;
int *a=&b;int *c=&d;
swap(a,c);

cout<<"b="<<b<<".d="<<d<<endl;
}

void swap(int * x,int * y)
{int temp=*x;
*x=*y;
*y= temp;
}



我想问的是,这里没有返回一个值,为什么还可以交换?而用指针交换的话,依然没有返回,为什么又不能交换?

[此贴子已经被作者于2006-10-25 1:17:10编辑过]

2006-10-24 21:20
saltfish_007
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-10-21
收藏
得分:0 
我现在唯一搞不懂的就是为什么值交换可以成功,而指针交换不能成功?
而且你用值交换的时候并没有在自定义函数里面用到return语句,也成功进行了交换。

在此先谢谢maoguoqing朋友这么多篇文章的回复,非常感谢您。
2006-10-26 05:15
saltfish_007
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-10-21
收藏
得分:0 

那么,就是说实参是指针或者引用都不能实现对主函数的参数交换是吗?(如果自定义函数中交换的是地址)



如果自定义函数中交换的是值,那么就一定能成功交换,是吗?

以上两个问题是新问题,您之前的解答我已经明白了,谢谢

2006-10-26 19:16
saltfish_007
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-10-21
收藏
得分:0 
引用我知道可以成功,但是引用交换的是地址,为什么也能成功?这里不太明白。
引用传递是否也是属于传值?但是书本上说的是引用传递传的是地址
2006-10-27 01:37
saltfish_007
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-10-21
收藏
得分:0 
谢谢!!
2006-10-28 06:46
快速回复:[求助]求助,关于交换指针的问题
数据加载中...
 
   



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

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