void change(int *x,int *y) { int z; z=*x; *x=*y; *y=z; printf("%d,%d\n",*x,*y); }

请问一下在这里的z=*x;*x=*y;*y=z;的意义是什么啊?求解... 请问一下在这里的
z=*x;
*x=*y;
*y=z;

的意义是什么啊?求解
展开
 我来答
听不清啊
高粉答主

推荐于2017-11-06 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:2.3亿
展开全部
就是交换*x与*y变量的值,然后再打印交换后的二个值。
在程序中要交换二个int变量a和b的值,就用change(&a,&b); 实现。在change函数中实现的交换结果,对于主调函数中的变量a和b,也能得到保留。
wanglixin1001
2012-09-29 · TA获得超过4175个赞
知道大有可为答主
回答量:1758
采纳率:80%
帮助的人:1073万
展开全部
这个函数实现两个指针所指向的int对象的数值的交换。
z就是一个临时变量,作为中间值存在的。
比如说*x = 11,*y = 22,那么这三条语句等价于:
z = 11;
*x = 22;
*y = z = 11;
z存贮*x的值作为过渡,否则直接使用*x = *y; *y =*x是不能实现交换的。
希望能够帮到你。
追问
可是*x是一个指针啊,它代表的应该是一个地址吧,那为什么可以付给一个整形数据呢?
追答
x是int *类型的变量,它是一个指针。*x是取x这个指针指向对象的值。
可以printf("%d", x); printf("%d", *x);看看,你就明白什么是指针什么是值了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangnasa
2012-09-29 · TA获得超过777个赞
知道小有建树答主
回答量:732
采纳率:100%
帮助的人:691万
展开全部
z=*x;
*x=*y;
*y=z;
这三句的意思就是交换x和y存放的值
因为x和y是指针类型 所以 要用*x 和*y 来取得里面存放的值
而z是一个中间变量 用来临时存放*x 或*y的值得
你也可以不用中间变量完成交换
*x=*x+*y;
*y=*x-*y;
*x=*x-*y;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jzchenr
2012-09-29 · TA获得超过1062个赞
知道小有建树答主
回答量:851
采纳率:66%
帮助的人:277万
展开全部
int a; int *b;
a是整形变量,b为指向整形变量的指针,所以可以:b=&a;, &就是取变量的地址!那么如何取得指针所指向地址的内容呢?就需要使用*,*b就是b所指向地址的值,也就是a的值!
所以:z=*x,就是将x所指向地址的值赋给z;
*x=*y就是讲y指向地址的值赋给x所指向的地址,比如x指向a,y指向b,那么就是将b的值赋值给a;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-09-29
展开全部
引用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式