Online C Compiler
Abrir no compilador

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.

Abrir no compilador

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 compilador

Saí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.