listen verkettung

Danke, meiner Meinung nach geht es aber (für Anfänger) deutlicher hervor, das wenn p->next nicht gesetzt ist, 0 zugewiesen wird.
 
Hi.

Meiner Meinung nach verkompliziert das nur den Code. Warum sollte man eine unnötige Fallunterscheidung machen?!

Im Grunde bedeutet es das gleiche wie:
C:
if (p->next == 0)
  p = p->next;
else
  p = p->next;
In Zeile 2 kann man natürlich p->next direkt durch den Wert von p->next ersetzen, da man ihn vorher geprüft hat. Viel schlauer ist es allerdings, zu erkennen, dass sich die Fälle gar nicht unterscheiden und man die Fallunterscheidung gleich ganz weglassen kann.

Außerdem finde ich die Formulierung ob p->next "gesetzt" ist, gar nicht gut. p->next ist immer "gesetzt", eine Variable hat immer einen Wert. Das ist also nicht die Frage.

Gruß
 
Naja, war ja nur für den Beispielcode gedacht.
Ich meinte man könnte es besser erkennen, vielleicht habe ich mich da geirrt.

Aber ich würde meinerseits nicht so viel Wert darauflegen, ob jetzt erstere oder zweitere Variante dort steht.


Außerdem finde ich die Formulierung ob p->next "gesetzt" ist, gar nicht gut. p->next ist immer "gesetzt", eine Variable hat immer einen Wert. Das ist also nicht die Frage.
Da hast du Recht!
Den Ausdruck habe ich vielleicht von PHP, wo [phpf]isset[/phpf] false bei NULL zurückliefert ;)
 
Zurück