Em programação, é bastante comum precisarmos armazenar vários valores relacionados em um mesmo problema. Quando esses valores pertencem ao mesmo tipo de dado, podemos utilizar uma estrutura de dados homogênea. Esse tipo de estrutura permite agrupar diversos elementos sob um único nome, facilitando tanto a organização do programa quanto a manipulação dos dados.
Na linguagem C, uma das principais formas de representar esse tipo de estrutura é por meio dos arrays, também chamados de arranjos. Um array permite armazenar vários valores do mesmo tipo em posições consecutivas de memória. Assim, em vez de declarar várias variáveis independentes, o programador pode trabalhar com uma única estrutura composta por múltiplos elementos.
Do ponto de vista da memória, armazenar 100 valores inteiros em 100 variáveis separadas ou em um array com 100 posições exige, em essência, a mesma quantidade de espaço. A principal diferença está na forma como o programa organiza e acessa esses dados. Ao utilizar um array, temos uma representação mais estruturada, o que torna o código mais legível, mais escalável e mais fácil de manter.
Cada elemento armazenado em um array ocupa uma posição específica, identificada por um índice. Esse índice é utilizado em conjunto com o nome da estrutura para acessar ou modificar um valor. Em outras palavras, o nome do array identifica o conjunto de dados, enquanto o índice permite localizar um elemento específico dentro desse conjunto.
Na representação acima, para acessar o valor 25, seria necessário utilizar o nome do array juntamente com o índice correspondente à posição em que esse valor está armazenado. Nesse caso, o valor 25 encontra-se na posição 2.

Figura 1. Exemplo de vetor com sete elementos.
Quando um array utiliza apenas um índice para acessar seus elementos, dizemos que ele é uma estrutura unidimensional. Em C, essa estrutura é chamada de vetor. Como esta aula está centrada nesse conceito, trabalharemos exclusivamente com arranjos unidimensionais.
Vale observar que, em contextos mais amplos, também existem estruturas com duas ou mais dimensões. Entretanto, neste momento, nosso foco será o estudo dos vetores, por serem a forma mais simples e fundamental de organização de coleções de dados homogêneos.
Dependendo da linguagem de programação e do contexto de uso, arrays podem ser classificados como estáticos ou dinâmicos. Arrays estáticos possuem tamanho definido no momento da declaração e mantêm esse tamanho ao longo da execução do programa. Já estruturas dinâmicas podem variar de tamanho durante a execução. Na linguagem C introdutória que estamos estudando neste momento, trabalharemos principalmente com vetores de tamanho fixo, definidos previamente no código.
Para compreender melhor a importância dos vetores, considere o seguinte problema: criar um programa que leia 10 números inteiros e, em seguida, os imprima na ordem inversa daquela em que foram fornecidos.
Uma solução sem vetores exigiria a declaração de dez variáveis diferentes e uma sequência extensa de comandos para leitura e impressão:
#include <stdio.h>
int main() {
int um, dois, tres, quatro, cinco, seis, sete, oito, nove, dez;
scanf("%d %d %d %d %d", &um, &dois, &tres, &quatro, &cinco);
scanf("%d %d %d %d %d", &seis, &sete, &oito, &nove, &dez);
printf("%d ", dez);
printf("%d ", nove);
printf("%d ", oito);
printf("%d ", sete);
printf("%d ", seis);
printf("%d ", cinco);
printf("%d ", quatro);
printf("%d ", tres);
printf("%d ", dois);
printf("%d\n", um);
return 0;
}
Embora essa solução funcione, ela é pouco elegante e difícil de escalar. Se o problema passasse a exigir 100 números, por exemplo, o código se tornaria excessivamente repetitivo e muito mais sujeito a erros.
Com vetores, a solução se torna mais simples e mais adequada:
#include <stdio.h>
int main() {
int numeros[10];
int i;
numeros[]
for(i = 0; i < 10; i++)
scanf("%d", &numeros[i]);
for(i = 9; i >= 0; i--)
printf("%d ", numeros[i]);
printf("\n");
return 0;
}
Nesse segundo caso, todos os valores são armazenados em um único vetor chamado numeros, e os laços de repetição permitem realizar tanto a leitura quanto a impressão de forma compacta e organizada. Além disso, caso a quantidade de elementos precise ser alterada, a adaptação do código é muito mais simples.
Esse exemplo evidencia uma das principais vantagens dos vetores: eles permitem representar e manipular coleções de dados de forma sistemática, reduzindo repetições e favorecendo a construção de programas mais claros.
De maneira geral, vetores são especialmente úteis em situações como: