Arrays
Um array C tem um tamanho fixo definido na criação sem nenhuma forma embutida de crescer, e — diferente de todas as outras linguagens deste site — não tem uma propriedade length própria. sizeof(array) / sizeof(array[0]) é o truque padrão para recuperar a contagem de elementos de um array, e só funciona enquanto o array ainda está no scope como array (não depois que ele decai para um pointer, o que a próxima lição cobre).
#include <stdio.h>
int main() {
int numbers[5] = {4, 8, 15, 16, 23};
int sum = 0;
for (int i = 0; i < 5; i++) {
sum += numbers[i];
}
printf("%d\n", sum);
printf("Array size: %zu\n", sizeof(numbers) / sizeof(numbers[0]));
return 0;
}66 Array size: 5
C também não faz verificação de limites: ler ou escrever além do fim de um array não gera um erro — ele apenas lê ou corrompe qualquer memória que esteja ali. Isso é undefined behavior, e é uma das arestas mais afiadas do C.
A seguir: pointers — a única ideia sobre a qual o resto deste curso é construído.
Practice exercise
Dado int numbers[4] = {4, 8, 15, 16}, some todos os seus elementos com um for loop e imprima o total.