mas na funçao chuta e main tem dois arrays chutes[26]foi passado parametro e nao ponteiro, e pasando apenas chutes como ponteiro vc nao eata passando o ponteiro do indice 1,com o sistema vai acessar os outros.
mas na funçao chuta e main tem dois arrays chutes[26]foi passado parametro e nao ponteiro, e pasando apenas chutes como ponteiro vc nao eata passando o ponteiro do indice 1,com o sistema vai acessar os outros.
Oi João! Como vai?
Quando você passa um array como parâmetro para uma função em C, na verdade, está passando um ponteiro para o primeiro elemento do array. Isso significa que, mesmo que você não veja explicitamente um ponteiro sendo passado, é isso que está acontecendo por baixo dos panos.
No seu exemplo, quando você passa chutes
para a função, está passando o endereço do primeiro elemento do array chutes
. A função então pode acessar todos os elementos do array a partir desse endereço inicial.
Isso acontece porque os elementos de um array são armazenados contiguamente na memória. Assim, ao acessar chutes[1]
, o sistema sabe que precisa "pular" um elemento a partir do início do array para acessar o segundo elemento.
Aqui está um exemplo prático para ajudar a visualizar isso:
#include <stdio.h>
void imprimirArray(int arr[], int tamanho) {
for (int i = 0; i < tamanho; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main() {
int chutes[3] = {10, 20, 30};
imprimirArray(chutes, 3);
return 0;
}
Neste exemplo, a função imprimirArray
recebe um array arr
e seu tamanho. Mesmo que arr
seja passado como um array, ele é tratado como um ponteiro dentro da função. Isso permite que a função acesse todos os elementos do array original.
Espero ter ajudado e bons estudos!