鱼C论坛

 找回密码
 立即注册
查看: 2440|回复: 5

刚学c语言的指针 有点问题请教大家。。

[复制链接]
发表于 2011-12-8 13:11:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
void exchange(int *p1,int *p2)
{
    int *p;
    if (*p1 > *p2)
    {
          p=p1;
          p1=p2;
          p2=p;
    }
}

为什么不能使用指针实现两数的对换,而一定要取得指针指向的值实现对换?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
头像被屏蔽
发表于 2011-12-8 13:42:47 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-12-8 14:34:21 | 显示全部楼层

p1,p2指向变量A,B  通过exchange(p1,p2)函数使p1,p2两指针对换,然后在主函数中用*p1,*p2输出A,B互换的值。可是最后输出时A,B的值没有对换,这是为什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
头像被屏蔽
发表于 2011-12-8 14:46:48 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-12-8 15:05:30 | 显示全部楼层
z310394543 发表于 2011-12-8 14:46
我晕 又没看仔细 形参不改变实参的值。。

ok  I know 了  thank you~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-8 17:40:25 | 显示全部楼层
本帖最后由 ever.g 于 2011-12-8 17:41 编辑

:L因为你括号内是互换的p1 p2  所保存的变量的地址 的值。。
不是传送来的地址内的数据,改成*p1 *p2就行了
解释的有点绕口。。
然后修改后用int P就行了,int *p 又类型不匹配了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 12:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表