在我的课程中,我需要动态地分配一个卡列表,但是这段代码有一行我不确定.
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)
它仍然是一个循环.重新格式化:
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)
原样,它肯定会产生误导.
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |