Os princípos da definição e manipulação de arranjos em C foram descritos na Seção 2.1.3. Assim como para variáveis de tipos básicos, os elementos de um arranjo podem ser também inicializados durante a declaração da variável. Neste caso, os valores de cada um dos elementos são delimitados por chaves. Por exemplo,
main() {
/* declara um arranjo de cinco inteiros */
int elem[5] = {0,0,0,0,0};
...
}
O índice de um arranjo pode ser qualquer expressão inteira, incluindo-se variáveis e constantes inteiras. C não verifica se o valor do índice está dentro da faixa declarada -- é responsabilidade do programador garantir que o acesso esteja dentro dos limites de um arranjo.
Arranjos podem ser multidimensionais. Por exemplo, um arranjo bidimensional pode ser declarado, inicializado e acessado como em
main() {
/* declara um arranjo de duas linhas
com tres inteiros por linha */
int elem[2][3] = { {0,0,0}, {0,0,0}};
int i, j;
/* modifica conteudo do arranjo */
for (i=0; i<2; ++i)
for (j=0; j<3; ++j)
elem[i][j] = i*3 + j;
}
Em C, um arranjo bidimensional é na verdade um arranjo unidimensional
onde cada elemento é um arranjo. Por este motivo, dois operadores de
indexação são utilizados ao invés da forma [i,j]. Elementos são
armazenados por linha.
Em geral, arranjos com muitas dimensões não são utilizados em C visto que ocupam muito espaço e o acesso a seus elementos não ocorre de forma eficiente.