Edição didática em português. O código e suas saídas preservam o original.
Arrays em C
Trabalhe com índices, percursos, matrizes e comprimentos explícitos sem ultrapassar os limites.

Um array contém elementos consecutivos do mesmo tipo. Um array de N elementos usa índices de 0 até N - 1. C não verifica índices automaticamente; acessar fora do objeto causa comportamento indefinido.
Inicialize os dados antes de lê-los. Use um laço cujo limite corresponda ao comprimento e verifique as leituras de entrada. Ao passar o array para uma função, passe também seu tamanho.
Uma matriz em C é um array de arrays, armazenado por linhas. A função que a recebe precisa de informações suficientes sobre as dimensões para calcular cada endereço corretamente. Não confunda uma matriz com um array de ponteiros.
No escopo em que existe o array completo, sizeof array / sizeof array[0] obtém a quantidade de elementos. Essa fórmula não funciona em um parâmetro que já é ponteiro. Teste arrays de um elemento e confira sempre o primeiro e o último índice.
Código C
#include <stdio.h>
int main(void) {
int scores[5] = {70, 85, 90, 65, 100};
int grid[2][3] = {
{1, 2, 3},
{4, 5, 6}
};
int n = sizeof(scores) / sizeof(scores[0]);
int sum = 0;
for (int i = 0; i < n; i++) {
sum += scores[i];
}
printf("Elements: %d\n", n);
printf("Sum: %d\n", sum);
printf("Average: %.1f\n", (double)sum / n);
printf("2D array:\n");
for (int r = 0; r < 2; r++) {
for (int c = 0; c < 3; c++) {
printf("%d ", grid[r][c]);
}
printf("\n");
}
return 0;
}
Abrir no compiladorSaída esperada
Elements: 5 Sum: 410 Average: 82.0 2D array: 1 2 3 4 5 6
Perguntas frequentes
Por que o código e a saída continuam em inglês?
Palavras-chave, identificadores e textos verificados pelos testes são preservados para não alterar o programa. As explicações e os controles estão traduzidos.