Pointers and arrays in memory.
Memory is just a long string of bytes addressed by locations. Variables are represented by their addresses. Programs can also deal with addresses via pointers. Pointers contain the address of the data they point to. Arrays are blocks of contiguous memory that can be accessed using indexes that calculate the address from the starting point. Functions use stack frames to manage local variables that are destroyed when the function exits.