czwartek, 10 lutego 2011

Kurs języka C: Inkrementacja ++ i dekrementacja --


Autor: Dondu

Kurs języka C: Spis treści

Inkrementacja i dekrementacja za pomocą operatorów ++ oraz -- to zwiększenie lub zmniejszenie wartości zmiennej o jeden. Operatory te możesz umieszczać przed i po zmiennej.

Najczęściej używana forma:

Przykład 1 (w kompilatorze)
  //inkrementacja
  ++a;   //preinkrementacja
  a++;   //postinkrementacja
  
  //dekrementacja
  --b;   //predekrementacja
  b--;   //postdekrementacja
W tym przypadku umieszczenie operatorów przed, czy po zmiennej nie ma znaczenia. Po prostu w danej linii kodu zmieniasz wartość zmiennej o jeden.

Są jednak przypadki gdzie kolejność ma znaczenie. Zacznijmy od:

++zmienna
--zmienna 

Umieszczenie operatora przed zmienną skutkuje pierwszeństwem wykonania operatora względem pozostałych operatorów w danym wyrażeniu arytmetycznym. Patrząc na przykład poniżej, zmienna a najpierw zostanie zwiększona o jeden, a dopiero później jej wartość zostanie przypisana zmiennej b.

Przykład 2 (w kompilatorze)
  //deklaracja zmiennych
  int a=0, x=5, b, y;
  
  //operacje
  b = ++a;    //preinkrementacja
  y = --x;    //predekrementacja



zmienna++
zmienna-- 

Teraz umieścimy operatory za zmienną. W tym przypadku operator zostanie wykonany na końcu. Innymi słowy najpierw wartość zmiennej a zostanie przypisana do zmiennej b, a dopiero później zmienna a zostanie powiększona o jeden.

Dlatego wyniki będą inne niż w poprzednim przykładzie.

Przykład 3 (w kompilatorze)
  //operacje
  b = a++;    //postinkrementacja
  y = x--;    //postdekrementacja

Sprawdź w kompilatorze CManiak oba przykłady.


Ćwiczenie

Przeanalizuj poniższy przypadek, a później sprawdź w kompilatorze CManiak, czy prawidłowo rozwiązałeś ćwiczenie.

Przykład 4 (w kompilatorze)
  int a=2, b=3, c;
  c = a++ + --b;


Kurs języka C: Spis treści

11

2 komentarze: