Olá Victor, tudo bem com você?
Você fez uma pergunta muito interessante, e que iremos abordar e responder na próxima aula do curso: Ponteiros e Endereços de Memória
, mas vou te adiantar um pouco da resposta, mas fique tranquilo que o instrutor irá explicar tudo novamente :)
Na linguagem C, temos duas formas de passar os valores para uma função:
- Uma cópia do valor
- O endereço da memória
No exemplo da aula mostramos que quando utilizamos o tentativas estamos apenas copiando o valor e que as mudanças que fazemos na função não se reflete no main
pois são totalmente distintos
Acontece que também podemos passar o endereço na memória, e ai a situação é diferente, quando alteramos o valor que está em um endereço de memória a mudança é feita globalmente
Já no próximo vídeo iremos mostrar como ao invés de passar uma cópia do valor de tentativas
passar o endereço de tentativas
, e ai que está a mágica :)
Quando passamos um array para uma função por padrão não estamos copiando o valor dele, e sim, passando o endereço de memória, então dentro da função chute
quando alteramos o valor de uma posição no array, como é um endereço, a mudança reflete dentro do código inteiro :)
Mas fique tranquilo se pareceu confuso, teremos várias aulas para tentar explicar todas as características dessa ferramenta nova, e você vai ver que é muito interessante!
Compreendeu? Qualquer coisa estou a disposição :)
Abraços e Bons Estudos!