0

我有三个指针*player1*player2*currentPlayer

指针*currentPlayer将始终指向*player1*player2。要在两者之间切换,我一直在执行以下操作:

if (currentPlayer == player1) {
        currentPlayer = player2;
}
else {
    currentPlayer = player1;
}

我的问题是,有没有更简单、更优雅的方式在这两个指针之间进行交换?

4

2 回答 2

9

不,从概念上讲,没有更简单的方法。

从语法上讲,三元运算符要短一些:

currentPlayer = currentPlayer == player1 ? player2 : player1;
于 2012-10-04T23:57:36.467 回答
0

如果您使用数组,这也可以工作:

currentPlayer = playerArray + (currentPlayer - playerArray ^ 1);
于 2012-11-02T02:57:42.150 回答