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;
但是有可有超出定义域范围
暂时就相到这么多。
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 运算速度来说,这点运算太微不足道了!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯