描述:
假设地址addr1中存储了一个整数a,地址addr2中存储了一个整数b,要求交换这两个值,不使用额外的内存。
方法1:
缺点:存在a+b,这可能导致溢出。
方法2:
解决上述可能的溢出问题,若a,b同符号且都不溢出,则a-b肯定不会溢出的; 若a,b异号且都不溢出,则a+b肯定不会溢出的。
先判断a,b的符号,如果同号,则做一个相减动作: