1
resposta

Porque usar acertou = 0 ?

Usei sem o 0, e deu certo, está errado?

1 resposta

Oi, Victor! Tudo bem?

Peço desculpas pela demora. Ótima dúvida a sua!

Na linguagem C, quando escrevemos int acertou = 0; estamos inicializando a variável, isso significa que estamos atribuindo um valor a ela. Agora, quando escrevemos apenasint acertou;, o compilador faz essa inicialização por nós, contudo, ele irá atribuir o valor que está na memória que ele alocou para a sua variável, e isso não é bom porque sua variável pode conter "lixo de memória", que são valores aleatórios que vão atrapalhar o funcionamento correto do código.

Se, por exemplo, imprimirmos o valor de acertou antes da sua inicialização, veremos que o valor impresso é “aleatório”:

printf("\nValor de 'acertou': %d\n", acertou); // imprimiu: “Valor de 'acertou': 6356744”

Imagine que você utilizasse esta variável, sem inicializar, em uma operação aritmética, como soma ou subtração, isso traria problemas para o seu código. Para o seu algoritmo, de fato, não há erros, pois antes de utilizar ela você atribui um valor, com esta instrução:

acertou = (chute == numerosecreto);

Espero que tenha esclarecido a sua dúvida, estou aqui caso precise. Abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado. ✓