Bewertung des folgenden Ausdrucks
Das folgende Code-Snippet:
int i=-3,j=2,k=0,m;
m=++i && ++j || ++k;
kann mit zwei Konzepten bewertet werden, glaube ich:
1.Seit ++ Operator hat eine höhere Priorität als die logischen Operatoren, daher werden zuerst alle Inkrementoperatoren ausgewertet, dann hat && eine höhere Priorität als || wird berechnet. In diesem Prozess wird k inkrementiert.
2. Der erste Operator && wird ausgewertet. Dafür werden ++ i und ++ j berechnet. Da das Ergebnis des Operators && 1 ist, muss ++ k nicht ausgewertet werden. So wird k nicht inkrementiert.
Wenn ich es auf einem System versuche, beweist das Ergebnis, dass 2 richtig und 1 falsch ist. Wieso ist es so?