Aprenda a declarar, inicializar e acessar arrays em C, com diagramas de memória claros.
int a[5]; declara um array de 5a[0] até a[4]int a[] = {1,2,3};int m[3][4]sizeof(a)/sizeof(a[0]) para contar elementosint a[5] = {10, 20, 30, 40, 50}; printf("%d\n", a[0]); // -> 10 printf("%d\n", a[4]); // -> 50
5 em int a[5] é a quantidade. a[5] em si não existe![5] significa "quantos" → reserva espaço para 5 elementos.[ ] significa "qual deles" → só 0 até 4 são válidos.a[0] até a[4] — exatamente 5 slots. Lembre: o tamanho da declaração 5 e o último índice válido 4 sempre diferem em 1.a[5] ou a[100] como erro (muitas vezes nem como aviso). Em tempo de execução pode sobrescrever outra variável, travar com Segmentation fault, ou — pior — parecer funcionar enquanto silenciosamente corrompe dados.i < 5 (menor estrito) para "0 até 4". Escrever i <= 5 tocaria em a[5] — o clássico bug de off-by-one.
| Nome | Tipo | Valor |
|---|
tipo nome[linhas][colunas];.// 3 linhas x 4 colunas int matrix[3][4] = { {1, 2, 3, 4}, // linha 0 {5, 6, 7, 8}, // linha 1 {9, 10, 11, 12} // linha 2 };
matrix[1][2] é o terceiro elemento da linha 1, que é 7.for (int i = 0; i < 3; i++) { // linha for (int j = 0; j < 4; j++) { // coluna printf("%3d", matrix[i][j]); } printf("\n"); }
void func(int m[][4], int rows).80+65+92+78+88 = 403, então a média real é 403 ÷ 5 = 80.6.int / int → int).
double: double avg = (double)sum / 5;printf("Media = %.1f\n", avg); (%.1f = uma casa decimal).
double e um cast (double)sum para mostrar a média real 80.6Teste seu entendimento desta aula!
int a[5]; aloca?a[5] dá 5 elementos, de a[0] até a[4].
Índices de arrays em C sempre começam em 0. Em a[5], a[0] é o primeiro elemento.
int a[3] = {1, 2};, qual o valor de a[2]?Quando um array é parcialmente inicializado, os elementos restantes são inicializados com zero. Então a[2] é 0.