首页 > 代码库 > 深入理解计算机系统-作业2.10
深入理解计算机系统-作业2.10
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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。