L. J. schrieb:
> aber ich versteh leider die Problematik nicht, wenn ich
> zuerst die andere Bedingung abfrage
Das verstehe ich wiederum nicht. Du hast bei mir den Eindruck erweckt,
das Du den Code selbst geschrieben hast.
L. J. schrieb:
> Ich habe ein Verwaltungsprogramm in C geschrieben...
Nun. Vielleicht ist Dir da ein Irrtum unterlaufen und Du hast nicht
daran gedacht, das Du gerade diese eine Zeile nicht selbst geschrieben
hast. Kann ja mal vorkommen.
Also Du oder Dein Alter Ego, haben, als sie die Zeile:
while((ptr1 != NULL) && (num > ptr1->nummer))
geschrieben haben, gedacht: "Ich will in der verkettenen Liste
fortschreiten, bis ich einen Nummer, groesser oder gleich num finde.
Aber ach, es könnte ja sein, das sich so eine Nummer nicht findet; was
dann? Dann gelange ich an das Ende der Liste," hast Du (o.D.A.E.)
gedacht, "und erkenne dies mit dem Test ptr1 != NULL)". Dann hast Du
(o.D.A.E.) nichtmehr gedacht, denn die Frage ob die Bedingung (num >
ptr1->nummer) überhaupt sinnvoll auszuwerten ist, haengt davon ab ob die
andere Bedingung (ptr1 != NULL) wahr ist. Ergo muss diese zuerst
ausgewertet werden, damit nicht versehentlich mit prt1 == NULL die
zweite Bedindung ausgewertet wird.