求教一个c语言中^=来交换变量的有关问题

求教一个c语言中^=来交换变量的问题
今天写代码遇到变量交换的问题,就用了^=来实现,结果结果不尽如人意,试验了一下发现^=对数组元素不管用,只对单一的整形变量管用,比如两个int变量a和b就可以用这种方法来交换,但是int类型的a[0]和a[1]就无法完成交换,具体大家可以实验一下,第一次发问题,表述可能不准确,望见谅,求大神指教。。。
C

------解决方案--------------------
引用:
引用:^的弊端是 两个操作数不能是同一个对象
还有只能应用于整型 
浮点型无力

你说的 数组中 a[0]和a[1] 这个交换是不会有问题的
不过 如果是 a[5] 和 a[5] 交换就会出错
谢谢指教,不过不知道怎么的,我的实验中数组交换就的不到正确结果,
我的实验是这样的,a[]={2,4}
然后a[0]^=a[1……

你这就是错的,按照你的意思,代码应该是:

a[0]^=a[1];
a[1]^=a[0];
a[0]^=a[1];

------解决方案--------------------
引用:
引用:引用:引用:^的弊端是 两个操作数不能是同一个对象
还有只能应用于整型 
浮点型无力

你说的 数组中 a[0]和a[1] 这个交换是不会有问题的
不过 如果是 a[5] 和 a[5] 交换就会出错
谢谢指教,不过不知道怎么的,我的实验中数组……
你原本的逻辑就没写对 a[0]^=a[1]^=a[0]
目测你想做的其实是 a[0]^=a[1]^=a[0]^=a[1]
需要注意的是这样的做法是错误的 未定义行为