Passando um vetor para função em C

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

exemplo passando um vetor para função c

Tela de execução do exemplo passando um vetor para função C

Até a próxima!

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