| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 954 人关注过本帖
标题:求助:指针问题
只看楼主 加入收藏
lian__86
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-2-7
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:9 
求助:指针问题
#include<iostream.h>
void swap(int *p1,int *p2)
{
    int p=0;
    p=*p1;
    *p1=*p2;
    *p2=p;
   
}
main()
{
   
    int a,b;
    int *pointer_1,*pointer_2;
    cin>>a>>b;
    pointer_1=&a;
    pointer_2=&b;
    if(a<b)
        swap(pointer_1,pointer_2);
    cout<<*pointer_1<<" "<<*pointer_2;
}

求高手指点,以上程序为何无法达到交换的效果
搜索更多相关主题的帖子: 指针 
2010-02-14 16:01
lintaoyn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:606
专家分:2499
注 册:2009-4-8
收藏
得分:2 
我觉得吧,应该是你输入的a >= b。

迭代的是人,递归的是神。
2010-02-14 19:58
cgy1989
Rank: 2
等 级:论坛游民
帖 子:4
专家分:17
注 册:2009-8-12
收藏
得分:3 
main函数下改成swap(&pointer_1,&pointer_2);试一下
2010-02-15 00:18
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
看不出有什么不妥,估计是你输入a, b的问题!(什么情况下不能交换啊?)

★★★★★为人民服务★★★★★
2010-02-15 19:47
yh19880108
Rank: 2
来 自:陕西
等 级:论坛游民
帖 子:34
专家分:24
注 册:2010-1-23
收藏
得分:0 
在 我 这上面 执行的是 warning This file includes at least one deprecated or antiquated header.
你 换成iostream试试
 在 把 void去掉
 换成 有 返回值 类型的
! 就行了
   
2010-02-18 16:16
feixiang1106
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-8-28
收藏
得分:0 
把if 判断条件删除看看.
不知道是不是你输入的值不符合条件
2010-03-02 14:32
秀痘魔导士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:250
专家分:1150
注 册:2009-12-23
收藏
得分:0 
代码没问题
2010-03-02 14:41
长安大学
Rank: 1
等 级:新手上路
帖 子:5
专家分:7
注 册:2010-3-3
收藏
得分:0 
*变量指代的是 值,而&变量就对了,把函数里的 *换成&就可以.
2010-03-03 19:30
psv
Rank: 2
等 级:论坛游民
帖 子:21
专家分:54
注 册:2010-3-3
收藏
得分:0 
当给函数传值的时候是传值而不是地址,调用函数的时候函数为传的值重新分配空间,这个时候改变的只是新空间中的指针而真实的值是没有改变的
故应该传地址而不是值
2010-03-03 20:54
新的开始啊
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-3-4
收藏
得分:0 
以下是引用psv在2010-3-3 20:54:33的发言:

当给函数传值的时候是传值而不是地址,调用函数的时候函数为传的值重新分配空间,这个时候改变的只是新空间中的指针而真实的值是没有改变的
故应该传地址而不是值
所以你的函数参数改成int指针的引用类型就可以了:
程序代码:
void swap(int* &p1,int* &p2)
{
    int *p=0;
    p=p1;
    p1=p2;
    p2=p;
   
}

大概就是这个意思。。
2010-03-04 11:13
快速回复:求助:指针问题
数据加载中...
 
   



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

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