INTRODUZIONE ALLA PROGRAMMAZIONE IN C



Ordine di precedenza degli operatori



E' necessario fare attenzione al significato di un'espressione come a + b * c dove potremmo volere sia l'effetto di (a + b) * c sia quello di a + (b * c) Tutti gli operatori hanno una propria priorita', e gli operatori ad alta priorita' sono valutati prima di quelli a bassa priorita'. Gli operatori con la stessa priorita' sono valutati da sinistra a destra; Cosi' a - b - c e' valutato (a - b) - c come ci si puo' aspettare. L'ordine di priorita', dalla piu' alta alla piu' bassa, degli operatori in C e': ()[]->. !~-*& sizeof cast ++ -- (these are rigth -> left) */% +- < <= >= > == != & ^ | && || ?: (right -> left) = += -= (right -> left) ,(comma) Quindi: "a < 10 &&2 * b < c" e' interpretato come: "(a < 10) &&((2 * b) < c)". ed anche: a= b= spokes / spokes_per_wheel + spares; e' valutato come: a= (b= (spokes / spokes_per_wheel) + spares );