C++中不用变量怎么把两个量互换

来源:百度知道 编辑:UC知道 时间:2024/07/07 23:22:34
不用指针
其实问题很简单
当我看了答案以后真的差点晕死了
先是令a=a+b;
然后令b=a-b;
最后a=a-b;
over 了

void swap(int *a,int *b)
{
*a=*a+*b;
*b=*a-*b;
*a=*a-*b;
}

不用变量?
那就是把两个常量互换?
……仿佛不现实……
楼上的仿佛用的是指针“变量”……

用异或
a=a^b;
b=a^b;
a=a^b;
只限用于整型

好像不好做啊,用指针吧

void swap(int a ,int b)
{
a = a^b;
b = a^b;
a = a^b;
}
其中^为异或,这样就不会出现因为相加而产生的溢出现象,只对整形有效。