怎么不用第三片空间实现两个数的交换?c++题目
来源:百度知道 编辑:UC知道 时间:2024/07/07 01:38:44
swap(int &a,int &b)
{
}
怎么不用第三片内存空间实现两个数的交换?
请高手把函数体写一下,谢谢了
{
}
怎么不用第三片内存空间实现两个数的交换?
请高手把函数体写一下,谢谢了
可以采用 异或 操作
函数体如下:
swap(int &a,int &b)
{
a=a^b;
b=b^a;
a=a^b;
}
可以采用 异或 操作
函数体如下:
swap(int &a,int &b)
{
a=a^b;
b=b^a;
a=a^b;
}当a=b的时候你就知道有bug 了把
C语言中可以这样:
swap(int *a,int *b)
{
*a=*a+*b;
*b=*a-*b;
*a=*a-*b;}
也许*a 和*b的地址空间一样的时候你就完了bug
呵呵
swap(*p1,*p2)
{int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}
C语言中可以这样:
swap(int *a,int *b)
{
*a=*a+*b;
*b=*a-*b;
*a=*a-*b;
利用位运算