Por: Eduardo Casavella
Para passar um vetor para uma função usando linguagem C utiliza-se um ponteiro como parâmetro da função. Ao usarmos o ponteiro como parâmetro, na realidade estamos passando o endereço inicial do vetor e não os seus elementos.
Vamos exemplificar uma passagem de vetor em uma função através de um exemplo prático.
O programa a seguir recebe 10 notas e armazena-as em um vetor.
Para efetuar o cálculo da média foi implementada uma função que recebe a quantidade de elementos do vetor e o seu endereço inicial, cujo protótipo é:
float media (int n, float *vnotas);
Posteriormente, no corpo da função efetuamos o processamento que manipula os dados do vetor de modo a calcular a média.
Veja o código da função comentada abaixo:
float media (int n, float *vnotas)
{
int i;
float m = 0, soma = 0;
//fazendo a somatória das notas
for (i = 0; i < n; i++)
soma = soma + vnotas[i];
//dividindo pela quantidade de elementos n
m = soma / n;
//retornando a média
return m;
}
A seguir o código fonte completo do exemplo:
#include<stdio.h>
#include <stdlib.h>
//protótipo da função media
float media (int n, float *vnotas);
int main (void)
{
float vnotas[10];
float media_notas;
int i;
/* leitura das notas */
for (i = 0; i < 10; i++)
{
printf";Digite os valores das notas: ");
scanf("%f", &vnotas[i]);
}
//chamada da função
media_notas = media(10,vnotas);
printf ( "\nMedia = %.1f \n", media_notas );
system("pause");
return 0;
}
/* Função para cálculo da média
Parâmetros:
Recebe a quantidade de elementos n
Recebe o endereço inicial do vetor notas em *vnotas
Retorno:
Retorna a media na variavel m
*/
float media (int n, float *vnotas)
{
int i;
float m = 0, soma = 0;
//fazendo a somatória das notas
for (i = 0; i < n; i++)
soma = soma + vnotas[i];
//dividindo pela quantidade de elementos n
m = soma / n;
//retornando a média
return m;
}
Tela de execução
Até a próxima!

10 respostas a Passando um vetor para função em C