berechnungen in c
-
Hallo,
Ich hab ne frage..
Wieso beim ersten Programm 5 raus kommt.Das x--;
verkleindert x um 1.#include <stdio.h> #include <stdlib.h> int main(){ int x = 2; x = 3* x--; // ergebnis 5 printf("%i",x); }
Dann müsste hier 3 kommen?
#include <stdio.h> #include <stdlib.h> int main(){ int x = 2; x = 3* --x; // ergebnis 3 printf("%i",x); }
Ich dachte bei beiden kommt 3 raus. weil x um ein verkleindert wird und anschließend mit 3 multiplitziert wird.
-
Das ist der Unterschied zwischen prefix und postfix, ersteres dekrementiert erst, letzteres dekrementiert anschließend
-
.....so versteh ich bahnhof.. ein beispiel dazu währ mal nicht schlecht.
-
int x = 5; int y = 5; int z; printf("%d\n", x--); // Ausgabe: 5 x = 5; printf("%d\n", --x); // Ausgabe: 4 //genauso z = y++; // z == 5 z = y; // jetzt ist z = 6 z = --y; // jetzt ist z wieder 5
-
Um es mal anhand deines Phenomens zu erleutern:
int x = 2; x = 3* x--;
hier wird x erst in der Rechnung verwendet und erst nach der Rechnung dekrementiert. Also er rechnet 3*2, weist dies x zu und vermindert dies dann um 1 => 5
int x = 2; x = 3* --x;
hier ist es genau andersrum. Erst wird x um eins vermindert, ist also 1 und wird dann in der Rechnung verwendet => 3