aula 188

Vetor é sempre um ponteiro?

Dando continuidade ao conteúdo sobre ponteiros em nosso Curso de Programação C, vamos hoje responder esta pergunta: Vetor é sempre um ponteiro?

A resposta é um categórico SIM!

Como já vimos, o nome de qualquer vetor contém o endereço de memória da primeira posição do vetor. Assim, quando passamos um vetor para uma função ou procedimento, na verdade estamos passando um apontador. Isso significa que qualquer alteração que feita no vetor, na verdade está alterando o vetor original dentro da função main.

Observe o exemplo a seguir. Neste exemplo imprimirmos um vetor de inteiros. Em seguida, chamamos o procedimento teste que altera o vetor recebido por parâmetro, multiplicando cada elemento por 2. Por fim, quando imprimirmos novamente nosso vetor, ele não é mais o vetor original, pois foi alterado pelo procedimento teste.

Código de teste completo em C passando um vetor como parâmetro

*/
          Aula 188: Vetor é sempre ponteiro?

          Código escrito por Wagner Gaspar
          Maior de 2021
*/

void teste(int vet[], int tam){
    int i;
    for(i = 0; i < tam; i++)
        vet[i] = vet[i] * 2;
    printf("\n");
}

void imprimir(int vet[], int tam){
    int i;
    for(i = 0; i < tam; i++)
        printf("%d ", vet[i]);
    printf("\n");
}

int main(){

    int vet[10] = {45,89,68,25,17,76,34,29,57,44};

    imprimir(vet, 10); // vetor original
    teste(vet, 10);
    imprimir(vet, 10); // vetor alterado

    return 0;
}

Deixe um comentário

quatro × 3 =

Wagner Gaspar

Capixaba de São Gabriel da Palha, Espírito Santo. Bacharel em Ciência da Computação pela Universidade Federal do Amazonas e mestre em informática pela Universidade Federal do Espírito Santo.