CSAPP阅读随笔——22.6.9
作者:互联网
练习题2-10.指针与加法逆元实现的无需第三变量的两变量交换
整数运算中存在:
a + (-a) = 0,a与-a互为加法逆元
利用该性质可实现如下代码:
void inpace_swap_integer(int * x, int * y) { *y = (-*x) + *y; *x = *x + *y; *y = *x + (-*y); }
布尔运算中存在:
b ^ b = 0,b与b本身互为加法逆元(其中^为异或运算)
同理可实现
void inpace_swap_bool(int * x, int * y) { *y = *x ^ *y; *x = *x ^ *y; *y = *x ^ *y; }
标签:CSAPP,int,void,逆元,22.6,swap,inpace,加法,随笔 来源: https://www.cnblogs.com/Willard-Wong/p/16361003.html