quando eu devo colocar os colchetes [] no array ou quando eu nao devo colocar? No exercicio em questão eu tinha colocado o parametro "nums" com colchetes "nums[i]", mas na resposta apareceu sem eles..
o restante estava igual.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
quando eu devo colocar os colchetes [] no array ou quando eu nao devo colocar? No exercicio em questão eu tinha colocado o parametro "nums" com colchetes "nums[i]", mas na resposta apareceu sem eles..
o restante estava igual.
Oi Andre, tudo bem?
Quando desejamos receber arrays como parâmetros em nossas funções, é válido declarar com os colchetes, e também é válido dizer que espera receber um ponteiro, pois quando trabalhamos com arrays, recebemos o endereço de memória do primeiro elemento, ou seja, não ocorre passagem por cópia.
A três forma a seguir compilam e funcionam como esperado:
int soma(int* nums, int tamanho) { // espera receber um ponteiro
// código da função aqui
}
int soma(int nums[], int tamanho) { // utilizando os colchetes ([])
// código da função aqui
}
int soma(int nums[3], int tamanho) { // utilizando os colchetes ([]) e passando um número dentro deles
// código da função aqui
}
Perceba que mesmo no caso em que utilizamos int nums[3], é também necessário passar o tamanho do array (int tamanho) para que possamos saber o tamanho do array.
Nesse caso o número 3 dentro dos colchetes não significa nada, pois o que será passado para a função soma será o endereço de memória do primeiro elemento, como explicado em algum momento durante o curso.
Faz sentido? Se a dúvida persistir avisa aqui que vamos interagindo!
Abraço.