Udostępnij za pośrednictwem


Wyrażenia w nawiasach

W nawiasach można ująć dowolny operand bez zmiany typu lub wartości ujętego wyrażenia. Na przykład w wyrażeniu:

( 10 + 5 ) / 5

nawiasy wokół 10 + 5 oznaczają, że wartość 10 + 5 jest obliczana jako pierwsza i staje się lewym operandem operatora dzielenia (/). Wynik ( 10 + 5 ) / 5 to 3. Bez nawiasów 10 + 5 / 5 wyliczy wartość 11.

Mimo że nawiasy wpływają na sposób grupowania operandów w wyrażeniu, nie mogą zagwarantować określonej kolejności oceny we wszystkich przypadkach. Na przykład ani nawiasy, ani grupowanie od lewej do prawej następującego wyrażenia nie gwarantuje, jaka wartość i będzie znajdować się w jednym z podwyrażeń:

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

Kompilator jest wolny do oceny obu stron mnożenia w dowolnej kolejności. Jeśli początkowa i wartość to zero, całe wyrażenie może zostać obliczone jako dowolna z tych dwóch instrukcji:

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

Wyjątki wynikające z skutków ubocznych są omawiane w działaniach niepożądanych.

Zobacz też

Wyrażenia podstawowe języka C