呵呵,帮忙看一下以下函数swap的问题。答对了有十分。

看下列图,请问:1.函数swap,是怎么用的?再讲一下a,b是怎么调换值的过程?请讲的简单,详细一点。2.temp,是什么?在这里为什么有temp=*px,*py=tem... 看下列图,请问:
1.函数swap,是怎么用的?再讲一下a,b是怎么调换值的过程?请讲的简单,详细一点。
2.temp,是什么?在这里为什么有temp=*px,*py=temp
它表示什么意思?字母p与x,y等表示指针吗?
展开
efanabe
2011-11-07 · TA获得超过2008个赞
知道小有建树答主
回答量:708
采纳率:0%
帮助的人:1123万
展开全部
先来说一下,楼上说得有些问题。
1.swap函数是交换参数值的函数。但是,它不是通过交换数据的地址来实现值的交换的,而是直接交换值来实现值的交换。如果是通过交换地址,swap函数定义应该这么写:
swap()
int *px,*py;
{
int *temp; /*注意temp的类型和原题目中的不同*/
temp=px; /*注意px前面没有陪毕尘带“*”运算符*/
px=py;
py=temp;
}
在这个函数中,在调用swap(&a,&b);的时候,px就指向了原来的b变量,而py指向了原来的a变量。但是,其实a和b的值并没有交换。
而原题目中,px仍指向a变量,而py仍指向b变量,仅仅是交换了a和b的值
因为在
swap()
int *px,*py;
{
int temp;
temp=*px;
*px=*py;
py=*temp;
}
中,*px就是a,*py就是b。
2.temp是中间变量,就是把a的内容先给temp,然后把b的内容给a,最后把temp的内容再给a。如果没有temp的话,直接把b的内容给a,就会把a的原有值覆盖掉,丢失了a的原有值。
px和py是指向整型变量数纯的指针,芦禅px和py都是自定义的标识符,不能分开。从定义中可以看出来:
int *px,*py;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式