Os arrays possuem uma relação direta com ponteiros na linguagem C. Na prática, o uso de arrays está profundamente ligado ao conceito de endereços de memória e aritmética de ponteiros.
Compreender essa relação é fundamental para entender como os dados são organizados e acessados na memória.
O nome de um array representa o endereço do seu primeiro elemento.
Considere o exemplo:
int vetor[3] = {10, 20, 30};
Nesse caso:
vetor representa o endereço do primeiro elemento (vetor[0])O acesso tradicional aos elementos de um array é feito utilizando colchetes:
vetor[0] = 10;
vetor[1] = 20;
vetor[2] = 30;
No entanto, essa forma é apenas uma abstração.
Internamente, esse acesso é equivalente ao uso de ponteiros:
*(vetor + 0) = 10;
*(vetor + 1) = 20;
*(vetor + 2) = 30;
Ou seja:
vetor[i] é equivalente a *(vetor + i)
Na expressão: