Citar:
No puedes comparar peras con manzanas. Programar con lenguajes de "alto nivel" no tiene nada que ver con programar con lenguajes "más cercanos a como funciona la máquina"
Deberias de saber como funciona internamente un array. Y para saber eso, debes de aprender como minimo el lenguaje C, como se almacenan los datos en la memoria, que son punteros, que es la gestión dinámica de memoria, etc...
Nota:
No te digo que aprendas ensamblador, pero ya con lo "dificil" que es C y el cuidado con el que se tiene que ir, ni te cuento como debe de ser aprender ensamblador.
Entonces te vas a dar cuenta de que gambas nos da muchas cosas "hechas y simplificadas", (porque es un lenguaje de "alto nivel", por ejemplo trabajar con los arrays dinámicos) que realmente son muy complejas "a bajo nivel".
Te dejo el enlace de un curso de programador de sistema, que hice hace tiempo, donde aprendi "desde cero" un poco de C y linux:
http://fpoprogramador.blogspot.com.es/
En este curso incluso llegamos a hacer comandos, como el "ls".
Saludos