Pular para o conteúdo

Passar vetor pra função

objetivo Por que vetor não precisa de & e por que a função mexe no original.

A assinatura é int somar(int v[], int n). Vetor vai junto com o tamanho, sempre, porque dentro da função ele não sabe o próprio tamanho.

Na você escreve só somar(v, n), sem &. O nome do já é um .

Consequência prática: a função mexe no vetor ORIGINAL. É por isso que as funções de são void e mesmo assim o vetor sai ordenado.

exemplo.cclique numa linha pra entender ela

Onde todo mundo escorrega

  • Dentro da função não existe jeito de descobrir o tamanho do vetor. Por isso o n sempre vai junto.
  • Como a função mexe no original, uma função que ordena não precisa devolver nada.

Desafio

Escreva a função contaMaiores, que recebe um vetor, o tamanho e um valor x, e devolve quantos elementos do vetor são maiores que x.

int contaMaiores(int v[], int n, int x)
o que a função tem que devolver
chamadasaída esperada
v = {1, 5, 3, 9}contaMaiores(v, 4, 3)2
v = {1, 5, 3, 9}contaMaiores(v, 4, 0)4
v = {2, 2}contaMaiores(v, 2, 5)0
a sua função
linha 1
int contaMaiores(int v[], int n, int x) {
    // percorra o vetor e conte
}

Ctrl+Enter (Cmd+Enter no Mac) roda. Esc sai do editor.

aperte Rodar pra ver a saída aqui
Ver a pilha de chamadas passo a passo

Mostra o que o seu código faz em cada chamada. É uma simulação didática, não substitui o botão de testar.

Dicas

Tenta sozinho primeiro. Travou de verdade, abre a primeira.