1) 算术运算
就是通过+和-运算来实现。代码如下:
2) 位运算
通过异或运算也能实现变量的交换,这也许是最为神奇的,请看以下代码:
就是通过+和-运算来实现。代码如下:
int a,b;
a=10;b=12;
a=b-a; //a=2;b=12
b=b-a; //a=2;b=10
a=b+a; //a=12;b=10
2) 位运算
通过异或运算也能实现变量的交换,这也许是最为神奇的,请看以下代码:
int a=10,b=12; //a=1010^b=1100;
a=a^b; //a=0110^b=1100;
b=a^b; //a=0110^b=1010;
a=a^b; //a=1100=12;b=1010;
3) 指针运算1
这个有点不符合,毕竟new关键字还是申请了额外的内存,虽然没有申请变量,换汤未换药
int *a,*b;
a=new int(10); //给指针赋值
b=new int(20); //a=0x00030828,b=0x00030840
a=(int*)(b-a); //a=0x00000006
b=(int*)(b-int(a)); //b=0x00030828
a=(int*)(b+int(a)); //a=0x00030840
4) 指针运算2
这个是本人自己写的,刚好复习指针时想到的
int a = 4;
int b = 5;
*(((char*)&a)+1) = *((char*)&b);
*((char*)&b)=*((char*)&a);
*((char*)&a)=*(((char*)&a)+1);
*(((char*)&a)+1)=0;