Erittäin tyypillisiä C- operaattoreita ovat ++ ja - - .
Nämä operaattorit lisäävät tai vähentävät operandin arvoa yhdellä. Operandin tyypin tulee olla numeerinen tai osoitin.
Operandeista on kaksi eri versiota: esilisäys ja jälkilisäys.
|
lyhenne
|
vastaa
lauseita
|
|
a
= i++;
a
= i--
a
= ++i;
a
= --i;
|
a
= i; i = i+1;
a
= i; i = i-1;
i
= i+1; a = i;
i
= i-1; a = i;
|
Vaikka C- hakkerit rakentavatkin mitä ihmeellisimpiä kokonaisuuksia ++ - operaattorin avulla, kannattaa operaattorin liikaa käyttöä välttää. Esimerkiksi lauseet joissa esiintyy samalla kertaa useampia lisäyksiä samalle muuttujalle, saattavat olla jopa määrittelemättömiä:
/**
* Esimerkki epäselvästä ++-operaattorin käytöstä
* @author Vesa Lappalainen
* @version 1.0, 16.02.2003
*/
public class Plusplus {
public static void main(String[] args) {
double i=1.0,a;
a = i++/i++;
System.out.println("(a = " + a + ", i = " + i);
}
}
Ohjelma saattaa Java- kääntäjän toteutuksesta riippuen tulostaa mitä tahansa seuraavista a:n ja i:in kombinaatioista:
a: 0.5 1.0 2.0 i: 2.0 3.0
Aluksi ++ - operaattoria kannattaa ehkä käyttää vain yksinäisenä lauseena lisäämään (tai vähentämään) muuttujan arvoa.
i++;
Lisäysoperaattoria EI PIDÄ käyttää jos muuttuja johon lisäysoperaattori kohdistuu, esiintyy samassa lausekkeessa useammin kuin kerran.
Kiellettyjä on siis esimerkiksi:
a = ++i + i*i; ali(i++,i);