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