W języku C kolejność obliczania operandów operatora nie jest gwarantowana ze względu na zastrzeżenie możliwości optymalizacji kodu wynikowego przez kompilator (nie dotyczy to operatorów &&, ||, ?: oraz ,). Użycie operandów, których obliczenie wartości wpływa na wartość pozostałych nie gwarantuje takiego samego wyniku we wszystkich implementacjach języka.

Np. kod:

int i = 1; tablica[i] = i++;

nie gwarantuje, czy wartość 1 zostanie wstawiona pod indeks 1, czy może pod indeks 2 tablicy.

Zobacz też operator arytmetyczny operator logiczny operator relacji operator rozmiaru operator bitowy (w tym przesunięcie i obrót) przeciążanie operatorów

Bibliografia

Kategoria:Konstrukcje programistyczne