リリースリストfuncのforループに関する質問があります。 (頭はダミーなので、解放する必要はありません)。私は理解していない:cのトリッキーなforループの理解
next = next?
ループ内の部分。実際に何をしているのか、なぜ簡単に
next?
で十分ではありませんか?ここでのコードは次のとおり
typedef struct NODE {
int num;
struct NODE* next;
} Node;
void release_list(Node* head) {
Node* next = head->next ? head->next->next : NULL;
for(Node* curr = head->next;
curr != NULL;
curr = next, next = next? next->next : NULL) {
free(curr);
}
}
それは、[条件(別名三項)演算子]です(http://en.cppreference.com/w/c/language/operator_other#Conditional_operator) 。私は良い重複した質問があることを知っているが、私はちょうどそれを見つけることができません。 –