Programaçao C - Vetor como argumento para função
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
Postar um comentário