// 两数交换(只限数值)  
{
    int a,b,temp;
    /* 
        1.中间变量实现
        缺点:需要中间变量,浪费空间。 
    */
    temp = a;
    a = b;
    b = a;
     
    /* 
    

 

 


 


 


        2.保存和
            先用a保存a,b之和,b的值不变 
            然后和减去b就为原来a的值,赋给b,这个时候a为和,b为a的值,实现    了第一步交换
            再接着和减b即a减b就为原来b的值,赋值给a,实现最终交换 
        缺点:可能会越界。 
    */
    a = a+b;
    b = a-b;
    a = a-b; 
    
    /* 
        3.异或 
            异或规则:简单来说就是转换成二进制形式的两个数,每一位两个比较,相同为0,不同为1
                      1^1 = 0
                      0^0 = 0
                      1^0 = 1
                      0^1 = 1
            所以两个数进行异或计算,无非是两个数相对于另外一个数的相同位上的数不同的情况进行了改变
            由此,可以明白,和一个数进行异或得到的数再与其进行异或就可以得到原来的数
            用式子展示就是 
            a^b = c = b^a
            a^c = b = c^a
            c^b = a = b^c
    */
    a = a^b;        // a变成了c 
    b = a^b;        // a^b = c^b = a,b变成了a 
    a = a^b;        // a^b = c^a = b,a变成了b 
    return 0;
}