除了循环之外的其他东西?C++

-4 c++ for-loop

在我的课程中,我需要动态地分配一个卡列表,但是这段代码有一行我不确定.

if (newPlayer)                        
{
    cout << "Enter your name: ";
    cin >> playerName;

    newPlayer->nom = playerName;
    newPlayer->nextPlayer= NULL;
    newPlayer->cardsInHand= NULL;
    if (playersList)                           
    {
        //this for I dont understand. How can a for loop become this and what does it does                  
        for (p = playersList; p->nextPlayer; p = p->nextPlayer);
             p->nextPlayer= newPlayer;
    }
    else                                       
    {
        playerList= newPlayer;
        newPlayer->nextPlayer= NULL;
    }
}
Run Code Online (Sandbox Code Playgroud)

Pau*_*oub 8

它仍然是一个循环.重新格式化:

for (p = playersList;     // initialize p to the head of the list
     p->nextPlayer;       // continue while there is a next player 
     p = p->nextPlayer)   // set p to the next player
  ;                       // do nothing inside the loop.
Run Code Online (Sandbox Code Playgroud)

注意分号.它总是存在,但很难发现.

现在我们位于列表的末尾,将最后一个元素的nextPlayer成员指向newPlayer

p->nextPlayer = newPlayer;
Run Code Online (Sandbox Code Playgroud)

原件应该缩进为:

for (p = playersList; p->nextPlayer; p = p->nextPlayer)
  ;

p->nextPlayer = newPlayer;
Run Code Online (Sandbox Code Playgroud)

原样,它肯定会产生误导.