Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Między kolejnymi "punktami sekwencji" wartość obiektu może być modyfikowana tylko raz przez wyrażenie. Język C definiuje następujące punkty sekwencji:
Lewy operand operatora logicznego AND (&&). Lewy operand operatora logicznego AND jest całkowicie oceniany, a wszystkie skutki uboczne zostaną ukończone przed kontynuowaniem. Jeśli lewy operand daje wartość false (0), inny operand nie jest obliczany.
Lewy operand operatora logicznego OR (
||
). Lewy operand operatora logicznego OR jest całkowicie oceniany, a wszystkie skutki uboczne zostaną ukończone przed kontynuowaniem. Jeśli lewy operand zwraca wartość true (nonzero), inny operand nie jest obliczany.Lewy operand operatora przecinka. Lewy operand operatora przecinka jest całkowicie oceniany i wszystkie skutki uboczne są kompletne przed kontynuowaniem. Oba operandy operatora przecinka są obliczane zawsze. Należy pamiętać, że operator przecinka w wywołaniu funkcji nie gwarantuje kolejności oceny.
Operator wywołania funkcji. Wszystkie argumenty funkcji są oceniane i wszystkie skutki uboczne zostaną ukończone przed wejściem do funkcji. Nie określono kolejności oceny między argumentami.
Pierwszy operand operatora warunkowego. Pierwszy operand operatora warunkowego jest całkowicie oceniany i wszystkie skutki uboczne zostaną ukończone przed kontynuowaniem.
Koniec pełnego wyrażenia inicjalizacji (czyli wyrażenie, które nie jest częścią innego wyrażenia, takiego jak koniec inicjowania w instrukcji deklaracji).
Wyrażenie w instrukcji wyrażenia. Instrukcje wyrażeń składają się z wyrażenia opcjonalnego, po którym następuje średnik (;). Wyrażenie jest oceniane pod kątem skutków ubocznych i istnieje punkt sekwencji po tej ocenie.
Wyrażenie sterujące w instrukcji selection (
if
lubswitch
) . Wyrażenie jest obliczane całkowicie i wszystkie skutki uboczne są wykonywane przed wykonaniem kodu zależnego od zaznaczenia.Wyrażenie sterujące instrukcji
while
ordo
. Wyrażenie jest obliczane całkowicie i wszystkie efekty uboczne zostaną wykonane przed wykonaniem jakichkolwiek instrukcji w następnejwhile
iteracji lubdo
pętli.Każde z trzech wyrażeń instrukcji
for
. Wyrażenia są obliczane całkowicie i wszystkie skutki uboczne zostaną wykonane przed wykonaniem jakichkolwiek instrukcji w następnejfor
iteracji pętli.Wyrażenie w instrukcji
return
. Wyrażenie jest obliczane całkowicie, a wszystkie skutki uboczne są kompletne przed powrotem kontrolki do funkcji wywołującej.