主调函数中的两个变量a和b,要求调用函数交换a,b值

主调函数中的两个变量a和b,要求调用函数交换a,b值,返回交换结果,则以下正确的函数是()a.funa(int*x,int*y){int*p;*p=*x;*x=*y;*y... 主调函数中的两个变量a和b,要求调用函数交换a,b值,返回交换结果,则以下正确的函数是()
a.funa(int *x,int *y){int *p;*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;}
请分析一下。
展开
 我来答
czy7812
2012-07-30 · TA获得超过2670个赞
知道小有建树答主
回答量:518
采纳率:88%
帮助的人:188万
展开全部
正确的函数是D。
理由是:
B错在没使用指针,X和Y是局部变量,当函数结束后两个变量的值无法返还给调用者。
C错在算法,先让X指向Y,这时X已经变成Y,然后再让Y指向新的X,也就是Y等于Y自己,这样的结果就是X的值丢了,调用这个函数之后,X和Y两个同时等于Y了。
剩下的就是A和D了。A应该是错在使用了一个中间指针变量,在没对这个指针变量初始化的情况下,直接*p=*x;应该是让P直接指向X,而不是简单的把X的值赋给P这个变量,所以,当第二句*x=*y;时,事实上P的值也已经发生了变化,如果把这个指针变量换成变通的变量就对了,这个我也不太确定,你可以直接运行一下试试。
zc897575
2012-07-28
知道答主
回答量:39
采纳率:0%
帮助的人:9.7万
展开全部
你已经是正确的了?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式