Hallo! Hab ne ganz kurze Frage: counter = 0; array[counter++] = 0x0a; In welchem Index steht nun 0x0a? Mit anderen Worten: Wird counter vor der Zuweisung inkrementiert, oder erst danach? Vielen Dank!
danach: array[counter++] = 0x0a; davor: array[++counter] = 0x0a; steht aber auch in jedem C Buch...
Super - ich danke euch! Habe natürlich versucht, bei Google zu suchen, aber mangels Stichworte (die ich bis dato nicht kannte) ist es recht schwer.
Aber: Steffen schrieb: > Wird counter vor > der Zuweisung inkrementiert, oder erst danach? Das ist undefiniert. Bei diesem Code
1 | array[counter++] = counter; |
könnte hinterher in array[0] eine 0 oder eine 1 stehen. Als Arrayindex wird aber auf jeden Fall der Wert von counter von vor der Inkrementierung genommen.
Preincrement und Postincrement findest Du auch im folgendenem Video: http://et-tutorials.de/1226/variablenzuweisung-teil-2/
Stefan Ernst schrieb: > Aber: > > Steffen schrieb: >> Wird counter vor >> der Zuweisung inkrementiert, oder erst danach? > > Das ist undefiniert. Bei diesem Code > array[counter++] = counter; > könnte hinterher in array[0] eine 0 oder eine 1 stehen. Oder eine 42, oder 4711. Oder beides. Oder das Universum, wie wir es kennen, hört auf zu existieren. Alles davon wäre nach ISO-C erlaubt. > Als Arrayindex wird aber auf jeden Fall der Wert von counter von vor der > Inkrementierung genommen. Im obigen Code ist auch das nicht garantiert. Es ist undefiniertes Verhalten, und damit sind an dieser Stelle alle Garantien hinfällig.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.