Assozitivität
-
Wird der Test konsequent von links nach rechts
abgearbeitet?
....for(i=0; i < MAX - 1 == ((c = getchar()) != EOF); ++i)
....
alsofor(i=0; ((i < MAX - 1) == ((c = getchar())) != EOF); ++i)
?
-
...äh natürlich Assoziativität....
-
der vergleich ist ziemlich sicher false
îch würde mit && arbeiten
-
wenn i den Wert erfüllt isses true und Ergebnis der Zuweisung NOT EOF auch true, also beides verglichen(bei beidem true) ergibt true.
Außer der Zuweisung bei der c einen Wert bekommt wird alles von links nach rechts abgearbeitet. Da die Zuweisung in der Klammer steht spielt das aber für den Vergleich keine Rolle, da der komplette Ausdruck mit EOF verglichen wird.Übersichtlicher isses freilich mit &&.
-
natürlich is der zweite Ansatz etwas anderes, hier dürfte auf c keine 0 stehen(nach der Zuweisung), um den gesamten Ausdruck true zu machen.
wie gesacht, übersichtlich isses nicht.