为什么这个C ++花式swap()在Java中不起作用

时间:2016-11-29 06:17:57

标签: java c++

我最近读到了关于执行swap()的XOR方式:

void swap1(int[] arr, int a, int b) {
    arr[a] = arr[a] ^ arr[b];
    arr[b] = arr[a] ^ arr[b];
    arr[a] = arr[a] ^ arr[b];
}

缩短时间,我们有:

void swap2(int[] arr, int a, int b) {
    arr[a] ^= arr[b] ^ (arr[b] = arr[a]);
}

void swap3(int arr[], int a, int b) {
    arr[a] ^= arr[b] ^= arr[a] ^= arr[b];
}

但是,swap3()仅适用于C ++,并且在迁移后不适用于Java。 C ++和Java之间有什么区别,当使用不同语言编译时,相同的代码会提供不同的结果?

0 个答案:

没有答案