C语言里,怎样把x和y的值交换而不使用中间变量?

来源:百度知道 编辑:UC知道 时间:2024/05/24 13:38:10

位操作法
x=x^y;
y=x^y;
x=x^y;
或者使用加减法
x=x+y;
y=x-y;
x=x-y;

无论什么办法都不行的,比如用加减的方法,加的时候要是溢出了,结果显然不会可逆了。

从数据存储的角度来说,无论是交换内存地址还是交换内存信息,都需要一个缓虫或者寄存器,但那还是中间变量,所以你的想法直接交换是不能实现的.

利用函数,但函数内部实现也要通过中间变量,否则没有办法。

你们都有错误的地方哦