码迷,mamicode.com
首页 > 其他好文 > 详细

深入理解计算机系统-作业2.10

时间:2017-05-16 20:06:14      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:交换   swa   指针   void   swap   logs   enter   log   系统   

1 void inplace_swap(int *x, int *y){
2     *y = *x ^ *y;/*step1*/
3     *x = *x ^ *y;/*step2*/
4     *y = *x ^ *y;/*step3*/
5 }                        

以上代码的作用是交换x,y指针指向的存储位置的值,假设x,y指向的位置存储的值分别是a和b作为开始,填写下表:

步骤 *x *y
初始 a b
第一步 a a ^ b
第二步 a ^ a ^ b a ^ b
第三步 a ^ a ^ b a ^ a ^ b ^ a ^ b

 

 

 

 

 

 

因为 对于任一位向量a,有 a ^ a = 0. 根据这一属性,上面的表格可以变为:

步骤 *x *y
初始 a b
第一步 a a ^ b
第二步 b a ^ b
第三步 b a

 

 

 

 

 

 

 

深入理解计算机系统-作业2.10

标签:交换   swa   指针   void   swap   logs   enter   log   系统   

原文地址:http://www.cnblogs.com/jiayupeng/p/6863157.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!