Da trilha de C Este conceito ainda não saiu como card do dia. ir para o card de hoje

C Coleções Básico

Arrays

Um array em C é uma coleção de elementos do mesmo tipo armazenados em posições contíguas de memória. Ele permite acessar cada elemento por um índice, que começa em 0 e vai até tamanho - 1. Arrays podem ter uma ou mais dimensões, como int matriz[3][4], e são frequentemente passados como parâmetros para funções.

A declaração de um array define seu tipo, nome e tamanho, por exemplo: int notas[5];. O acesso é feito com colchetes: notas[0] é o primeiro elemento. É importante não ultrapassar os limites do array, pois isso causa comportamento indefinido.

Arrays multidimensionais são arrays de arrays. Por exemplo, char tabuleiro[3][3] representa uma matriz 3x3. Ao passar um array para uma função, na verdade passamos um ponteiro para o primeiro elemento; por isso, o tamanho do array não é conhecido dentro da função e geralmente passamos também o número de elementos.

Neste card, você vai praticar a declaração, o acesso por índices, o uso de arrays bidimensionais e a passagem de arrays como parâmetros.

Pontos-chave

  • Arrays armazenam vários valores do mesmo tipo em memória contígua.
  • O primeiro índice é sempre 0; o último é tamanho - 1.
  • Arrays multidimensionais são declarados com múltiplos pares de colchetes, ex.: int m[2][3].
  • Ao passar um array para uma função, passa-se um ponteiro para o primeiro elemento; o tamanho deve ser passado separadamente.
  • Cuidado com índices fora dos limites: isso causa comportamento indefinido.
arrays_basico.c
#include <stdio.h>

// Função que recebe um array e seu tamanho
void imprimir_array(int arr[], int tamanho) {
    for (int i = 0; i < tamanho; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
}

int main(void) {
    // Declaração e inicialização de um array unidimensional
    int numeros[5] = {10, 20, 30, 40, 50};

    // Acessando elementos por índice
    printf("Primeiro elemento: %d\n", numeros[0]);
    printf("Terceiro elemento: %d\n", numeros[2]);

    // Passando array para função
    printf("Array completo: ");
    imprimir_array(numeros, 5);

    // Array multidimensional (matriz 2x3)
    int matriz[2][3] = {{1, 2, 3}, {4, 5, 6}};
    printf("Matriz 2x3:\n");
    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < 3; j++) {
            printf("%d ", matriz[i][j]);
        }
        printf("\n");
    }

    return 0;
}

Exercícios

  1. 1
    Fácil

    Soma dos elementos de um array

    Escreva um programa que declare um array de inteiros com 5 elementos, calcule e imprima a soma de todos os elementos.

    Resolver
  2. 2
    Médio

    Média de uma matriz 3x3

    Crie um programa que declare uma matriz 3x3 de números reais (double), calcule e imprima a média de todos os elementos. Use uma função que receba a matriz e o número de linhas e colunas.

    Resolver
  3. 3
    Desafio

    Transposta de uma matriz passada como parâmetro

    Implemente uma função que receba uma matriz de inteiros com linhas e colunas e preencha uma segunda matriz com a transposta. A função deve ter a assinatura void transposta(int linhas, int colunas, int original[linhas][colunas], int resultado[colunas][linhas]). No main, declare uma matriz 2x3, chame a função e imprima a transposta (3x2).

    Resolver

Continue estudando