Espressioni tra parentesi

È possibile includere qualsiasi operando tra parentesi senza modificare il tipo o il valore dell'espressione inclusa. Ad esempio, nell'espressione:

( 10 + 5 ) / 5

le parentesi che racchiudono 10 + 5 indicano che il valore 10 + 5 viene valutato per primo e diventa l'operando sinistro dell'operatore di divisione (/). Il risultato di ( 10 + 5 ) / 5 è 3. Senza le parentesi, 10 + 5 / 5 restituirebbe 11.

Sebbene le parentesi influiscano sulla modalità con cui vengono raggruppati gli operandi in un'espressione, non è possibile garantire un particolare ordine di valutazione in tutti i casi. Ad esempio, né le parentesi né il raggruppamento da sinistra a destra dell'espressione seguente garantisce che il valore i sarà in una delle sottoespressioni:

( i++ +1 ) * ( 2 + i )

Il compilatore è libero di valutare i due lati della moltiplicazione in qualsiasi ordine. Se il valore iniziale i è zero, l'intera espressione potrebbe essere valutata come una di queste due istruzioni:

( 0 + 1 + 1 ) * ( 2 + 1 )
( 0 + 1 + 1 ) * ( 2 + 0 )

Le eccezioni derivanti dagli effetti collaterali vengono trattate in Effetti collaterali.

Vedi anche

Espressioni primarie C