Hallp Christoph,
Falsch! if (p=3) liefert als Ergebnis 3, was, weil es <> 0 ist als true interpretiert wird.
Das soll es ja in diesem Fall auch. _Hier_ wäre deine Anmerkung zum "schlechten Stil" angebracht gewesen.
Nein, soll es nicht. Es soll getestet werden, ob p den Wert 3 hat. Auch die Abfrage if (p=0) liefert den zugewiesenen Wert zurück, also in dem Fall 0 (false), was ja nun wirklich nicht Sinn der Abfrage sein kann.
Grüße
Andreas