Opgaver i denne lektion   Gå til annoteret slide, hvor denne opgave er tilknyttet -- Tastaturgenvej: 'u'   Alfabetisk indeks   Kursets hjemmeside   

Opgaveløsning:
Increment og decrement operatorerne


Du finder resultater og forklaringer i denne kommenterede udgave af programmet:

#include <stdio.h>

int main(void) {
  
  int i = 3, j = 4, k = 5;
  int res1, res2, res3;
  
  i++; j--; ++k;  /* i bliver talt op til 4.
                     j bliver talt ned til 3.
                     k bliver talt op til 6. 
                     I denne sammenhæng kan vi frit vælge mellem 
                     prefix og postfix increment/decrement. */

  printf("i: %d, j: %d, k: %d\n", i,j,k);  /* 4, 3, 6 */

  res1 = --i;     /* i er 4 før dette assignment.  i tælles ned til 3.
                     Da prefix assignment benyttes bliver res1 værdien af i efter nedtælling, altså 3. */
  res2 = j++;     /* j er 3 før dette assignment.  Denne værdi huskes.  j tælles op og bliver 4.
                     Den huskede værdi, altså 3, assignes til res2 */
  res3 = --k;     /* k er 6 før dette assignment.  k tælles ned til 5. 
                     Da vi har et prefix decrement bliver res3 værdien af k efter nedtællingen, altså 5. */

  printf("res1: %d, res2: %d, res3: %d\n", res1, res2, res3);  /* 3, 3, 5 */
  printf("i: %d, j: %d, k: %d\n", i,j,k);                      /* 3, 4, 5 */
  
  return 0;
}