Programaçao C - Vetor como argumento para função

Logo

Programaçao C - Vetor como argumento para função

O que é um vetor?

Aqui veremos como fazer a passagem de um vetor como argumento para uma função em C.

Inicialmente precisamos lembrar o que um vetor é uma variável composta homogênea unidimensional, ou seja, um vetor é um conjunto (array) de variáveis, todas do mesmo tipo de dado, organizadas sequencialmente na memória do computador em uma única dimensão.

Como passar um vetor como argumento?

Aqui é importante destacar que ao passar um array para uma função, esta passagem sempre será uma passagem de parâmetro por referência, isto é, a função receberá um ponteiro para a posição do primeiro bit do conjunto de variáveis. Assim, tudo o que for alterado no vetor pela função será também alterado na variável original (porque são referências para o mesmo espaço na memória).

Exemplo:

Como exemplo, faremos algumas funções. Uma função para leitura de um vetor (getVetorInt) e uma para imprimir um vetor (printVetorInt). Ambas funções recebem o vetor e o tamanho do vetor como argumentos.

Assinatura do função

1:  int getVetorInt(int [], int);  
2:  void printVetorInt(int [], int);  

Observe que aqui não informamos as dimensões do vetor, indicamos apenas o tipo do vetor e os [] que define a existência do vetor.

Funções Implementadas

1:  int getVetorInt(int array[], int max){  
2:       int i;  
3:       for(i=0; i<max; i++){  
4:            printf("Digite Vetor[%d]: ", i+1);  
5:            scanf("%d", &array[i]);  
6:       }  
7:       if(i==max)  
8:            return TRUE;  
9:       else  
10:            return FALSE;  
11:  }  
12:  void printVetorInt(int array[], int max){  
13:       int i=0;  
14:       printf("*** Vetor Unidimensional ***\n\n");  
15:       while(i<max){  
16:            printf("Vetor[%d]: %d\n", i+1, array[i]);  
17:            i++;  
18:       }  
19:  }  

Na implementação da função informamos o nome do vetor (válido para a função) mas não definimos a dimensão do vetor.

Chamada da função

1:  #include "classificacao.h"  
2:  #include "arrays.h"  
3:  int main(){  
4:       int dados[5];  
5:       getVetorInt(dados, 5);  
6:       bubblesort(dados, 5);  
7:       printVetorInt(dados, 5);  
8:       return 0;  
9:  }  

Ao chamar a função, não precisamos indicar que a variável é um vetor, apenas informar o nome da variável.

Dúvidas e sugestões podem ser feitas nos comentários.

Comentários

Postagens mais visitadas