在两个对象之间交换指针

时间:2012-10-04 23:53:24

标签: objective-c c pointers

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

指针*currentPlayer将始终指向*player1*player2。要在两者之间切换,我一直在做以下事情:

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

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

2 个答案:

答案 0 :(得分:9)

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

从语法上讲,三元运算符有点短:

currentPlayer = currentPlayer == player1 ? player2 : player1;

答案 1 :(得分:0)

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

currentPlayer = playerArray + (currentPlayer - playerArray ^ 1);