永发信息网

C++中怎样不用第3个变量交换2个变量的值

答案:2  悬赏:70  手机版
解决时间 2021-02-23 00:06
  • 提问者网友:谁的错
  • 2021-02-22 18:58
C++中怎样不用第3个变量交换2个变量的值
最佳答案
  • 五星知识达人网友:渡鹤影
  • 2021-02-22 20:21
如果是整型,可以用异或操作
a^=b;b^=a;a^= b;
数字类型(包括指针)可以
a=a+b;b=a-b;a=a-b;
但是有可有超出定义域范围
暂时就相到这么多。
全部回答
  • 1楼网友:独钓一江月
  • 2021-02-22 21:26
两种方法有局限性。 第二种方法只能交换 (unsigned) int / (unsigned) short / (unsigned) char。 第一种方法只能交换简单值类型 (double, float, int, short, char 等)。 回到问题本身,这个问题楼主根本不需要考虑。借用二楼的说法,“三条mov指令”和“三条xor指令”,都已经细微到了时钟周期的层面了,以现在动辄 3ghz、4ghz 的 cpu 运算速度来说,这点运算太微不足道了!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯