Questão de Programação — Linguagens de programação — VUNESP 2013
ProgramaçãoLinguagens de programação
- Código
- vu002062
- Banca
- VUNESP
- Órgão
- DCTA
- Ano
- 2013
- Nível
- Superior
- Cargo
- Tecnologista Pleno - Computação
Considere o seguinte código em linguagem C:
Esse código foi compilado por meio do GCC 3.4.4 e produziu o resultado “20” ao ser executado. Isso aconteceu porque
Esse código foi compilado por meio do GCC 3.4.4 e produziu o resultado “20” ao ser executado. Isso aconteceu porque- Aexiste um bug conhecido nessa versão do GCC que faz algumas expressões serem calculadas incorretamente.
- Bsegundo a especificação da linguagem C, a precedência dos operadores é diferente quando estes são invocados para determinar parâmetros de funções.
- Csegundo a especificação da linguagem C, o resultado de uma expressão que atualiza mais de uma vez o valor de uma mesma variável é indefinido.
- Da variável “x” utiliza o operador de pré-incremento, que produz o valor dois; enquanto a variável “y” utiliza o operador de pós-incremento, que produz o valor zero.
- Eé um comportamento esperado da linguagem, pois, de acordo a especificação, todos os operadores devem ser aplicados após a execução completa da expressão. Assim, o valor atribuído à variável “x” é sobrescrito pelos operadores de pós-incremento.