Quoted
Steht der Inkrement-Operator vor der Variablen, wird die Variable erhöht und der um 1 erhöhte Wert zurückgegeben. Steht der Inkrement-Operator hinter der Variablen, wird die Variable erhöht, jedoch der vorherige noch nicht um 1 erhöhte Wert zurückgegeben.
|
|
C Quellcode |
1 |
|
|
|
C Quellcode |
1 |
|
|
|
C Quellcode |
1 |
--j += ++k -= 5 / 2; |
|
|
C Quellcode |
1 |
++k -= 2 * --k - k++ / 2; |
Quoted
i += k++ + ++j * 2;
=> k = 1
=> j = 1
=> i = (0 + 1) * 2
=> i = 2
Quoted
j += --k % 5 + i--;
=> k = 0
=> i = 1
=> j += 0 % 5 + 2
=> j += 2
=> j = 3
|
|
C Quellcode |
1 2 3 4 5 6 7 8 9 10 |
... int i=1, j=2, k=3; for (i=1;i < 20; i++, ++j, k++) j += 2; i += k++ + ++j * 2; // * j += --k % 5 + i--; // * --j += ++k -= 5 / 2 ; // * j >>= 3; ++k -= 2 * --k - k++ / 2; // * ... |
Quoted
a) Welche Werte stehen nach Ausf¨uhrung des Programmausschnittes in den Variablen i, j
und k.
b) Schreiben Sie f¨ur jede mit * (im Kommentar) gekennzeichneten Zuweisungen eine zugeh
¨orige Folge von Zuweisungen mit Klammerausdr¨ucken (falls nicht in einem Ausdruck
darstellbar), welcher die Verarbeitungsreihenfolge des Compilers verdeutlicht.
z.B. k += 6 % 4 - 1 * k++; 1. Schritt: z = ((6 % 4) - (1 * k));
2. Schritt: k = k + 1;
3. Schritt: k = k + z;
|
|
C Quellcode |
1 2 3 4 5 6 7 8 9 |
int inc_prefix(int i) { i = i+1; return i; } int inc_postfix(int i) { i = i+1; return i-1; } |
Quoted from ""cewbie""
Es geht bei b nicht darum was dabei rauskommt, sondern nur, dass man die Zeilen richtig erklärt. Deshalb verstehe ich nicht was du da machst dOnUt?
Quoted
i += k++ + ++j * 2;
1. Schritt: z=k++ + ++j * 2
2. Schritt: y=k
3. Schritt: k=k+1
4. Schritt: j=j+1
5. Schritt: x=j
6. Schritt: w=j*2
7. Schritt: z=y+w
8. Schritt: i=i+z
Quoted from ""d0nUt""
Hier meine Lösung zur (1)
Quoted
i += k++ + ++j * 2;
1. Schritt: z=k++ + ++j * 2
2. Schritt: y=k
3. Schritt: k=k+1
4. Schritt: j=j+1
5. Schritt: x=j
6. Schritt: w=j*2
7. Schritt: z=y+w
8. Schritt: i=i+z