Analise as assertivas a seguir sobre pontos de sequência (se...
Próximas questões
Com base no mesmo assunto
Ano: 2026
Banca:
IF SUL - MG
Órgão:
IF Sul - MG
Prova:
IF SUL - MG - 2026 - IF Sul - MG - Professor EBTT - IFS-2, MCH3 e MUZ 3 - Informática |
Q4305772
Programação
Analise as assertivas a seguir sobre pontos de sequência (sequence points) e efeitos
colaterais nos padrões C++ anteriores ao C++11, conceito historicamente compartilhado com a
linguagem C e formalizado pelo padrão ISO/IEC 9899:
I. Em um laço while (contador++ < 5) { ... }, a condição de teste constitui uma expressão completa (full expression); portanto, há garantia de que o incremento de contador ocorre antes de o fluxo de execução prosseguir para o corpo do laço, mesmo utilizando a forma pós-fixada do operador.
II. Na instrução total = (a++ + b) + (a++ + c);, há garantia de que a primeira ocorrência de a++ é avaliada e seu efeito colateral aplicado antes da segunda ocorrência de a++, na ordem em que aparecem na expressão.
III. O ponto e vírgula que encerra uma instrução marca um ponto de sequência: todas as alterações produzidas por operadores de atribuição, incremento e decremento dentro daquela instrução devem ocorrer antes de o programa prosseguir para a instrução seguinte.
IV. No operador vírgula, como em expr1, expr2, há garantia de que a avaliação de expr1 — incluindo seus efeitos colaterais — ocorre antes da avaliação de expr2, pois o próprio operador vírgula constitui um ponto de sequência.
Quais estão corretas?
I. Em um laço while (contador++ < 5) { ... }, a condição de teste constitui uma expressão completa (full expression); portanto, há garantia de que o incremento de contador ocorre antes de o fluxo de execução prosseguir para o corpo do laço, mesmo utilizando a forma pós-fixada do operador.
II. Na instrução total = (a++ + b) + (a++ + c);, há garantia de que a primeira ocorrência de a++ é avaliada e seu efeito colateral aplicado antes da segunda ocorrência de a++, na ordem em que aparecem na expressão.
III. O ponto e vírgula que encerra uma instrução marca um ponto de sequência: todas as alterações produzidas por operadores de atribuição, incremento e decremento dentro daquela instrução devem ocorrer antes de o programa prosseguir para a instrução seguinte.
IV. No operador vírgula, como em expr1, expr2, há garantia de que a avaliação de expr1 — incluindo seus efeitos colaterais — ocorre antes da avaliação de expr2, pois o próprio operador vírgula constitui um ponto de sequência.
Quais estão corretas?