| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1541 人关注过本帖
标题:C语言交换两个数的值的问题 新手求教
只看楼主 加入收藏
chenghan818
Rank: 2
等 级:论坛游民
帖 子:27
专家分:22
注 册:2011-5-21
结帖率:37.5%
收藏
 问题点数:0 回复次数:12 
C语言交换两个数的值的问题 新手求教
希望讲的明白点 为什么前一种不行 后一种可以

swap(int a,int b)
{
   int t;
   t=a;
   a=b;
   b=t;
}
swap(int *a,int *b)
{
   int t;
   t=*a;
   *a=*b;
   *b=t;
}
搜索更多相关主题的帖子: 希望 C语言 
2013-03-14 16:36
SimpleDirect
Rank: 1
等 级:新手上路
帖 子:11
专家分:4
注 册:2013-3-3
收藏
得分:0 
两个应该都可以啊!!!前一种是交换变量,后一种是交换指针变量,实质是一样的。
比方说A中装的是酱油,B中装的是水,现有一空瓶子C,要让AB交换装的东西,首先要把A中的酱油倒进C中,把A腾开就是(C=A),然后把水倒进A中(A=B),最后再把C中的酱油倒进B,就是(B=C),你自己好好理解一下指针变量的含义
2013-03-14 16:54
wyw19880809
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:178
专家分:738
注 册:2013-3-14
收藏
得分:0 
swap(int a,int b)这个函数定义传进去的a和b只是一个副本  交换时只是局部变量交换 退出这个函数后  a和b的值又还原了
swap(int *a,int *b)这个函数传的参数是地址  交换的时候 直接交换地址里面的内容  所以这个可以实现变量交换
2013-03-14 17:00
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
2 楼明显不知道形参


[fly]存在即是合理[/fly]
2013-03-14 18:08
lxsjzbd
Rank: 4
来 自:河北省
等 级:业余侠客
帖 子:97
专家分:258
注 册:2012-3-31
收藏
得分:0 
两个函数操作对象不一样,上边那个操作的是函数里的局部变量,下边操作的是指针指向的值
2013-03-14 18:12
矿泉水的甜
Rank: 2
等 级:论坛游民
帖 子:34
专家分:13
注 册:2013-3-11
收藏
得分:0 
三楼正解
2013-03-14 18:25
语言者
Rank: 2
等 级:论坛游民
帖 子:20
专家分:14
注 册:2012-12-18
收藏
得分:0 
形参是改变不了实参的值,
2013-03-14 19:36
shmilyflf
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:5
帖 子:356
专家分:1008
注 册:2012-12-9
收藏
得分:0 
3楼正解,C++中用&(引用)也是可以的。swap(int &a,int &b),并且比指针安全。
2013-03-14 21:04
旺旺佳佳
Rank: 2
等 级:论坛游民
帖 子:36
专家分:44
注 册:2013-3-11
收藏
得分:0 
进步了
2013-03-14 21:30
chenghan818
Rank: 2
等 级:论坛游民
帖 子:27
专家分:22
注 册:2011-5-21
收藏
得分:0 
谢谢大家的回答 我已经懂了!
2013-03-14 22:41
快速回复:C语言交换两个数的值的问题 新手求教
数据加载中...
 
   



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

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