Einzelnen Beitrag anzeigen

tommie-lie
(Gast)

n/a Beiträge
 
#6

Re: C++ Frage (Interpretation einer Zeile)

  Alt 5. Apr 2004, 14:36
Zitat von Dannyboy:
das bedeutet also, dass man ...
Code:
pUrsacheDrehung[i] |= 1<<2;
... gar nicht so schreiben kann, sondern man muss den "|="-Operator
auflösen wegen der geringeren Priorität?
Wieso?
Klar kann man den so schreiben.
Aber da steht nur nicht
Code:
pUrsacheDrehung[i] = (pUrsacheDrehung[i] | 1) * 4;
sondern
Code:
pUrsacheDrehung[i] = pUrsacheDrehung[i] | (1 * 4);

Was Peter da angesprochen hat betrifft alle Zuweisungsoperatoren in C, sie werden wie in der Mathematik von rechts nach links bearbeitet, man speichert also den Wert rechts vom Operand in die Variable links von ihm, und setzt nicht die Variable links vom Operand auf den Wert rechts von ihm.
Daher ist folgendes auch möglich (geht in Pascal leider nicht...):
Code:
var1 = var2 = var3 = var4 = 0 // setzt alle Variablen auf 0
In diesem Fall hat die rechts-nach-links-Bearbeitung keinen Einfluss auf die Bearbeitung, weil die Operanden, wie Peter schon sagte, eine niedrige Priorität haben und wir rechts keine weiteren Zuweisungsoperanden haben.
  Mit Zitat antworten Zitat