首页 > 试题广场 >

在下列选项中,( )不能交换变量a和b的值。

[单选题]
在下列选项中,不能交换变量a和b值的是()
  • t=b;  b=a;  a=t;
  • a=a+b;  b=a-b;  a=a–b;
  • t=a;  a=b;  b=t;
  • a=b;  b=a;
注意实际编写代码时不要用B,因为两个变量之和可能会超过变量类型能表示的最大范围
发表于 2018-05-22 08:20:20 回复(0)
a=a+b;  b=a-b;  a=a–b;  // 这种方式考虑溢出
a ^= b;  b ^= a;  a ^= b;  // 不需要考虑溢出    a ^= b, 此时 a 中记录了a和b两个数中,各个二进制位的异同情况,1表示不同,0表示相同。已知b和各个二进制位的异同情况a,则 b ^= a;可以求得a值,然后赋值给b,实现交换。
发表于 2019-10-07 14:53:52 回复(1)
发表于 2022-01-24 15:18:18 回复(0)
D
发表于 2021-03-06 23:06:28 回复(0)
b也不能吧
发表于 2021-02-26 08:22:12 回复(0)