| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 561 人关注过本帖
标题:[讨论]一个有地址传送的问题。
只看楼主 加入收藏
damofei
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2006-5-10
收藏
 问题点数:0 回复次数:7 
[讨论]一个有地址传送的问题。
要求函数的功能是交换x和y中的值,且通过正确调用返回交换结果。能正确执行此功能的函数是( )。
A)funa(int *x,int *y)
{ int i,*p=&i;
*p=*x;*x=*y;*y=*p;
}
B)funb( int x,int y)
{ int t;
t=x;x=y;y=t;
}
C)func(int *x,int *y)
{ *x=*y;*y=*x;}
D)fund(int *x,int *y)
{ *x=*x+*y;*y=*x-*y;*x=*x-*y;
}
上面的四个答案中哪两个正确,为什么?
搜索更多相关主题的帖子: 地址 
2006-11-20 10:45
smartwind
Rank: 1
等 级:新手上路
威 望:1
帖 子:277
专家分:0
注 册:2006-11-13
收藏
得分:0 
A和D,不过需注意的是D在x,y值比较大的时候有溢出的可能
B函数传送的是参数的值,所以不会对实参的值有任何影响
C函数中算法错误,他的效果实际是x=y

2006-11-20 11:44
guzhou
Rank: 1
等 级:新手上路
威 望:1
帖 子:247
专家分:0
注 册:2006-11-4
收藏
得分:0 
A D都对!

2006-11-20 15:34
damofei
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2006-5-10
收藏
得分:0 
返回交换结果是什么意思?是实参传给形参,在执行语句后,形参再传回给实参吗?

思想有多远,就能走多远!
2006-11-21 14:52
zhanghuan_10
Rank: 1
等 级:新手上路
威 望:2
帖 子:751
专家分:0
注 册:2006-10-25
收藏
得分:0 
呵呵!不是通过return语句将结果返回吗?

该学习了。。。
2006-11-21 18:11
perfect
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:81
专家分:0
注 册:2006-11-19
收藏
得分:0 
以下是引用damofei在2006-11-21 14:52:33的发言:
返回交换结果是什么意思?是实参传给形参,在执行语句后,形参再传回给实参吗?

传递有两种情况:
一种是传送实参的值
一种是传送实参的地址
上面的是传送地址,交换内存中相应地址内的值,即把调用函数中的实参值交换了
形参是不能传给实参的
只能通过,return语句返回


片言可以明百意 坐驰可以役万里
2006-11-21 18:22
zxd198778
Rank: 1
等 级:新手上路
帖 子:99
专家分:0
注 册:2006-7-30
收藏
得分:0 
ls的解释的很清楚
我顶
我也学到了
哈哈

我一个不懂世事的人,希望能在这里学到我想学的一些东西。
2006-11-21 18:42
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 

谁有强殖装甲第二部,可以Q我460054868
2006-11-21 18:50
快速回复:[讨论]一个有地址传送的问题。
数据加载中...
 
   



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

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