首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2013-04-26 
求教一个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]
需要注意的是这样的做法是错误的 未定义行为

热点排行