Arrays e Funções
Parte da seção Fundamentos do Journey de C++ da Coddy. Lição 62 de 74.
Arrays não podem ser passados diretamente para funções como arrays completos. Quando você tenta passar um array para uma função, ele “se converte” em um ponteiro para seu primeiro elemento.
Por exemplo:
int numbers[5] = {1, 2, 3, 4, 5};
void processArray(int arr[]) {
int size = std::size(arr);
}std::size(arr) não compila aqui, porque arr na verdade é um ponteiro, não um array, e um ponteiro não armazena o tamanho do array. Você aprenderá sobre ponteiros no próximo curso.
É por isso que, ao passar arrays para funções, normalmente precisamos passar o tamanho como um parâmetro separado:
void processArray(int arr[], int size) {
// Agora podemos trabalhar com segurança com o array usando o parâmetro size
}Veja como chamar a função:
int numbers[5] = {1, 2, 3, 4, 5};
processArray(numbers, 5);Além disso, não é possível retornar um array em uma função:
int[] processArray(int arr[]) {
return arr;
}Isso é ilegal. Em vez disso, você deve usar a sintaxe *:
int* processArray(int arr[]) {
return arr;
}
int* newArr = processArray(arr);A sintaxe de asterisco (*) refere-se a ponteiros, que serão abordados no próximo curso.
Experimente você mesmo
Esta lição não inclui um desafio de código.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Operadores Parte 1
Operadores AritméticosOperador de MóduloIncremento/DecrementoPós-incremento/DecrementoAtalhos AritméticosOperadores de ComparaçãoComparação de Strings7Fundamentos de Entrada/Saída
Comando coutComando cinEntrada de StringRevisão - Até 120Revisão - Verdadeiro ou Falso3Variáveis Parte 2
Declaração de TipoConvenções de NomenclaturaRecapitulação - Inicializar VariáveisType Casting Parte 1Type Casting Parte 26Tomada de Decisão
Estrutura IfIf - ElseEstrutura SwitchOperador CondicionalRecapitulação - If ElseIf - Else AninhadoPratique por conta própria: Compilador de C++ online