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; }