【问题标题】:Swap a pointer between two objects在两个对象之间交换指针
【发布时间】:2012-10-04 23:53:23
【问题描述】:

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

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

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

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

【问题讨论】:

  • *player1 不是指针。 player1 是指向对象 *player1 的指针。

标签: objective-c c pointers


【解决方案1】:

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

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

currentPlayer = currentPlayer == player1 ? player2 : player1;

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2015-04-15
      • 2011-01-15
      • 1970-01-01
      • 2021-03-22
      • 2012-12-17
      • 2014-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多