void swap(ref int x, ref int y) { x = x ^ y; y = y ^ x; x = x ^ y; }
我正在学习按位异或。交换是如何发生的?这让我很震惊。这种方法应该交换X和Y的内容,但是我根本不了解发生了什么?
谨防。此方法具有非常非常讨厌的属性。它被用于“不受欢迎的C竞赛”参赛作品之一。它会愉快地工作……直到有一天,有人尝试像交换两个数组元素a [i]和a [j]这样的事情而不确保i!= j。
当两个引用都引用同一个变量时,此方法将其清零。