Usei sem o 0, e deu certo, está errado?
Usei sem o 0, e deu certo, está errado?
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!