Inkrement- und Dekrementoperator
-
hallo zusammen,
könnte mir bitte jemand den folgenden Code der in C programmiert ist erklären?
Habe schon eine Erklärung durchgelesen die ich allerdings nur so halb verstehe../* Demonstration des Inkrement- und Dekrementoperators */ #include <stdio.h> #include <stdlib.h> int main() { int wert = 1; wert++; printf("Wert : %d\n", wert); /* wert = 2 */ printf("Wert : %d\n", wert++); /* wert = 2 */ printf("Wert : %d\n", ++wert); /* wert = 4 */ printf("Wert : %d\n", wert--); /* wert = 4 */ printf("Wert : %d\n", --wert); /* wert = 2 */ system("PAUSE"); return 0; }Danke im Voraus!
MfG Micha
-
Hallo,
beim Postfix operator wird erst der alte Wert zurueckgegeben und dann wird
der Wert der Variable erhoeht:int wert = 5; cout<<wert++; //erst wird der alte Wert (5) zurueckgegeben, hier also //ausgegeben. Danach wird wert um eins erhoeht und ist 6 cout<<"\n"<<wert; //jetzt ist wert 6Beim Prefix operator wird erst der Wert erhoeht und dann zurueckgegeben:
int wert = 5; cout<<++wert; //erst wird Wert um eins erhoeht (6) und dann ausgegeben cout<<"\n"<<wert; //selbe ausgabe wie eine zeile daruebergruss
v R
-
Danke für deine Antwort!
Also ist das das Selbe wie z.B. +=1 oder -=1 ?
MfG Micha
-
Egtl gibt der Postfixoperator eine Kopie des nicht inkrementierten Objekts zurück. Da zuerst Wert zurückgeben und dann Inkrementieren nicht möglich ist!

-
Michael991 schrieb:
Danke für deine Antwort!
Also ist das das Selbe wie z.B. +=1 oder -=1 ?
Ja, zumindest beim Prefix-Operator. Beim Postfix würde das eher so aussehen:
int i = 1; int tmp = i; i+=1; int x = tmp; // oder kurz: int i = 1; int x = i++;Greetz