0

、、、の3つのポインタが*player1あり*player2ます*currentPlayer

ポインタは常にまたはのいずれか*currentPlayerを指します。2つを切り替えるために、私は次のことを行ってきました。*player1*player2

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

私の質問は、これら2つのポインターを交換するためのより簡単でエレガントな方法はありますか?

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 に答える