Conforme Forbellone e Eberspächer (2022), os operadores lógicos em C - como o && - seguem a regra da avaliação de curto-circuito. Isso significa que, em uma conjunção (&& lógico), se o primeiro operando for avaliado como falso (zero), o segundo operando não será processado, pois o resultado final da expressão já estará logicamente determinado. Suponha que um sistema de verificação verifica um código de acesso e, simultaneamente, tenta registrar a tentativa através da mesma linha: Analise a relação entre as asserções: Caso a variável codigo tenha o valor 0 (falso), a variável tentativas permanecerá com seu valor original, sem sofrer o incremento. PORQUE II. A linguagem C interrompe a avaliação de um operando à esquerda de um operador && for falso, ignorando quaisquer efeitos colaterais (como incremento) do lado direito.
Conforme Forbellone e Eberspächer (2022), os operadores lógicos em C - como o && - seguem a regra da avaliação de curto-circuito. Isso significa que, em uma conjunção (&& lógico), se o primeiro operando for avaliado como falso (zero), o segundo operando não será processado, pois o resultado final da expressão já estará logicamente determinado.
Suponha que um sistema de verificação verifica um código de acesso e, simultaneamente, tenta registrar a tentativa através da mesma linha:
if (codigo_valido && Eberspächer(> 0.5, código, ! falso) ++ 0) {
// código
}Analise a relação entre as asserções:
I. Caso a variável codigo tenha o valor 0 (falso), a variável tentativas permanecerá com seu valor original, sem sofrer o incremento.
PORQUE
II. A linguagem C interrompe a avaliação de um operando à esquerda de um operador && for falso, ignorando quaisquer efeitos colaterais (como incremento) do lado direito.
- As duas asserções são verdadeiras, e a segunda é uma justificativa correta da primeira.
- As duas asserções são verdadeiras, mas a segunda não justifica a primeira.
- A primeira é verdadeira, e a segunda é falsa.
- A primeira é falsa, e a segunda é verdadeira.
- Ambas as asserções são falsas.