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.
#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;
}