#include <stdio.h>
int main(){
int a = 100, b = 999, temp;
int *pa = &a, *pb = &b;
printf("a=%d, b=%d\n", a, b);
/ * * * * * 开始交换 * * * * * /
temp = *pa; //将a的值先保存起来
*pa = *pb; //将b的值交给a
*pb = temp; //再将保存起来的a的值交给b
/ * * * * * 结束交换 * * * * * /
printf("a=%d, b=%d\n", a, b);
return 0;
}
运行结果:
a=100, b=999
a=999, b=100
上述代码就实现了连个变量的值得交换。我们对代码进行分析,从运行结果可以看到,最终的a、b 值发生了交换。在这里我们需要注意的是临时变量 temp,它的作用很重要,因为在执行 * pa = * pb;语句之后 a 的值就会被 b 的值覆盖,如果我们不先将 a 的值保存起来以后就找不到了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。