Was bedeutet array[i++]?
-
i++ steht ja bekanntlich für i = i + 1. Wie ist dies aber zu verstehen wenn ich einem Array etwas an der Position i++ zuweise, dh. z.B. array[i++] = '\0' ?
-
Beispiel:
i sein 5;
dann wird mit
array[i++] = '\0';das Element array[5] auf den Wert '\0' gesetzt,
anschließend hat i den Wert 6.
Morgan_ schrieb:
i++ steht ja bekanntlich für i = i + 1. Wie ist dies aber zu verstehen wenn ich einem Array etwas an der Position i++ zuweise, dh. z.B. array[i++] = '\0' ?
-
Oder, um es ausführlicher zu machen - Ausdrücke in C haben einen Wert und häufig auch einen Nebeneffekt. Der Teil 'i++' erhöht im Nebeneffekt i um 1 und hat den Wert i (vor der Erhöhung). Wenn dir diese Kombination zu unheimlich ist, kannst du sie natürlich auch in zwei Teile aufteilen -
array[i]='\0';i++;
.
-
einen nebeneffekt würde ich es nicht nennen.
-
deutsch-fan schrieb:
einen nebeneffekt würde ich es nicht nennen.
Wieso nicht? Das ist die offizielle Bezeichnung dafür
-
wenn bei array[i++] das i++ der nebeneffekt ist, was ist dann der effekt?
-
Ich denke der Effekt in dem Fall ist, dass im Endeffekt auf das Array-Element i zugegriffen wird
-
Das einfachste wäre,
ihr bleibt bei meinem eindeutigen Beispiel und macht nicht "Deutsch für Anfänger".
-
postincrement-fan schrieb:
wenn bei array[i++] das i++ der nebeneffekt ist, was ist dann der effekt?
Bei C ist der "Effekt" eines Ausdrucks die Tatsache, daß er einen Wert zurückgibt - bei i++ also die Rückgabe des alten Wertes von i. Änderungen an Variablen, Ausgaben und ähnliches sind Neben- oder Seiteneffekte, weil sie quasi nebenher passieren. (und ja, die größte Wirkung entfaltet ein Programm durch seine Nebeneffekte ;))
-
hmmm, ich glaube mit diesem informatik-jargon werde ich nie warm werden.
-
Morgan_ schrieb:
Wie ist dies aber zu verstehen wenn ich einem Array etwas an der Position i++ zuweise, dh. z.B. array[i++] = '\0' ?
Das bedeutet, dass du am besten jeglichen Kontakt zu der Person abbrichst die dir das gezeigt hat.