求教一个c语言中^=来交换变量的有关问题
求教一个c语言中^=来交换变量的问题
今天写代码遇到变量交换的问题,就用了^=来实现,结果结果不尽如人意,试验了一下发现^=对数组元素不管用,只对单一的整形变量管用,比如两个int变量a和b就可以用这种方法来交换,但是int类型的a[0]和a[1]就无法完成交换,具体大家可以实验一下,第一次发问题,表述可能不准确,望见谅,求大神指教。。。
------解决方案--------------------
你这就是错的,按照你的意思,代码应该是:
------解决方案--------------------
你原本的逻辑就没写对 a[0]^=a[1]^=a[0]
目测你想做的其实是 a[0]^=a[1]^=a[0]^=a[1]
需要注意的是这样的做法是错误的 未定义行为
今天写代码遇到变量交换的问题,就用了^=来实现,结果结果不尽如人意,试验了一下发现^=对数组元素不管用,只对单一的整形变量管用,比如两个int变量a和b就可以用这种方法来交换,但是int类型的a[0]和a[1]就无法完成交换,具体大家可以实验一下,第一次发问题,表述可能不准确,望见谅,求大神指教。。。
C
------解决方案--------------------
你这就是错的,按照你的意思,代码应该是:
a[0]^=a[1];
a[1]^=a[0];
a[0]^=a[1];
------解决方案--------------------
你原本的逻辑就没写对 a[0]^=a[1]^=a[0]
目测你想做的其实是 a[0]^=a[1]^=a[0]^=a[1]
需要注意的是这样的做法是错误的 未定义行为