Źródło: Arkusze CKE
Wykorzystując jeden z dwóch zaprezentowanych sposobów inkrementacji w językach z rodziny C lub Java, można zauważyć, że
Zapis pierwszy:
b = a++;
Zapis drugi:
b = ++a;
Warianty odpowiedzi
-
A
Wartość zmiennej b będzie wyższa po użyciu drugiego zapisu w porównaniu do pierwszego.
-
B
Drugi zapis nie jest zgodny ze składnią, co doprowadzi do błędów kompilacji.
-
C
Bez względu na zastosowany sposób, w zmiennej b zawsze uzyskamy ten sam rezultat.
-
D
Tylko przy użyciu pierwszego zapisu zmienna a zostanie zwiększona o 1.
Wyjaśnienie
Różnica polega na kolejności wykonywania działań.
W pierwszym zapisie (b = a++) mamy postinkrementację. Komputer najpierw przypisuje aktualną wartość zmiennej a do zmiennej b, a dopiero potem zwiększa a o 1. Zmienna b dostaje więc starą wartość.
W drugim zapisie (b = ++a) występuje preinkrementacja. Najpierw zwiększamy wartość a o 1, a potem tę nową, wyższą wartość przypisujemy do b.
Dlatego po zastosowaniu drugiego zapisu zmienna b przyjmie wyższą wartość.