Arrays
Un array de C tiene un tamaño fijo establecido en el momento de su creación sin ninguna forma incorporada de crecer, y — a diferencia de todos los demás lenguajes de este sitio — no tiene una propiedad length propia. sizeof(array) / sizeof(array[0]) es el truco estándar para recuperar el número de elementos de un array, y solo funciona mientras el array todavía esté en el scope como array (no una vez que haya decaído a un pointer, lo cual cubre la siguiente lección).
#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 tampoco hace verificación de límites: leer o escribir más allá del final de un array no genera un error — simplemente lee o corrompe cualquier memoria que esté ahí. Eso es undefined behavior, y es uno de los bordes más afilados de C.
A continuación: pointers — la idea única sobre la que se construye el resto de este curso.
Practice exercise
Dado int numbers[4] = {4, 8, 15, 16}, suma todos sus elementos con un for loop e imprime el total.