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.
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.