交换两个变量的值,不使用额外的内存

    科技2024-08-15  28

    描述:

    假设地址addr1中存储了一个整数a,地址addr2中存储了一个整数b,要求交换这两个值,不使用额外的内存。

     

    方法1:

    缺点:存在a+b,这可能导致溢出。

     

    方法2:

    解决上述可能的溢出问题,若a,b同符号且都不溢出,则a-b肯定不会溢出的; 若a,b异号且都不溢出,则a+b肯定不会溢出的。

    先判断a,b的符号,如果同号,则做一个相减动作:

     

     

    Processed: 0.012, SQL: 8