Olá!
Se a variável "acertou", por exemplo, vai armazenar um valor booleano, porque não declaramos ela como "bool" e sim como "int"? Mais importante: porque funciona ao se declarar como um inteiro?
Olá!
Se a variável "acertou", por exemplo, vai armazenar um valor booleano, porque não declaramos ela como "bool" e sim como "int"? Mais importante: porque funciona ao se declarar como um inteiro?
Oi Luísa! Tudo bem?
A linguagem C não possui um tipo de dado booleano nativo como algumas outras linguagens de programação. Em vez disso, utilizamos o tipo int para representar valores booleanos, onde o valor 0 é interpretado como false e qualquer valor diferente de 0 é interpretado como true.
Por exemplo, no trecho de código que você trouxe:
int acertou = chute == numerosecreto;
Aqui, chute == numerosecreto é uma expressão que resulta em 1 (verdadeiro) se chute for igual a numerosecreto, e 0 (falso) caso contrário. Assim, a variável acertou armazena um valor inteiro que representa o resultado booleano da comparação.
Essa abordagem funciona porque, no C, as condições em estruturas de controle como if e while são baseadas em valores inteiros, onde 0 é falso e qualquer outro valor é verdadeiro. Portanto, declarar acertou como int é perfeitamente válido e funciona conforme esperado.
Espero ter ajudado. Conte com nosso apoio :)
Abraços e bons estudos!