Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Entre "pontos de sequência" consecutivos, o valor de um objeto pode ser modificado apenas uma vez por uma expressão. A linguagem C define os seguintes pontos de sequência:
Operando esquerdo do operador lógico-AND (&&). O operando esquerdo do operador lógico-AND é completamente avaliado e todos os efeitos colaterais são concluídos antes de continuar. Se o operando esquerdo for avaliado como falso (0), o outro operando não será avaliado.
Operando esquerdo do operador lógico-OR (
||). O operando esquerdo do operador lógico-OR é completamente avaliado e todos os efeitos colaterais são concluídos antes de continuar. Se o operando esquerdo for avaliado como true (diferente de zero), o outro operando não será avaliado.Operando esquerdo do operador de vírgula. O operando esquerdo do operador de vírgula é completamente avaliado e todos os efeitos colaterais são concluídos antes de continuar. Ambos os operandos do operador de vírgula são sempre avaliados. Observe que o operador de vírgula em uma chamada de função não garante uma ordem de avaliação.
Operador de chamada de função. Todos os argumentos para uma função são avaliados e todos os efeitos colaterais são concluídos antes da entrada na função. Não é especificada qualquer ordem de avaliação entre os argumentos.
Primeiro operando do operador condicional. O primeiro operando do operador condicional é completamente avaliado e todos os efeitos colaterais são concluídos antes de continuar.
O fim de uma expressão de inicialização completa (ou seja, uma expressão que não faz parte de outra expressão, como o final de uma inicialização em uma instrução de declaração).
A expressão em uma instrução de expressão. As instruções de expressão consistem em uma expressão opcional seguida por um ponto-e-vírgula (;). A expressão é avaliada quanto aos seus efeitos secundários e existe um ponto de sequência após esta avaliação.
A expressão de controle em uma instrução de seleção (
ifouswitch). A expressão é completamente avaliada e todos os efeitos colaterais são concluídos antes que o código dependente da seleção seja executado.A expressão controladora de uma
whileoudodeclaração. A expressão é completamente avaliada e todos os efeitos colaterais são concluídos antes que quaisquer instruções na próxima iteração dowhileloop oudosejam executadas.Cada uma das três expressões de uma
fordeclaração. As expressões são completamente avaliadas e todos os efeitos colaterais são concluídos antes que quaisquer instruções na próxima iteração doforloop sejam executadas.A expressão em uma
returndeclaração. A expressão é completamente avaliada e todos os efeitos secundários são concluídos antes de o controlo regressar à função de chamada.