Pointers
A pointer is a value that holds the address of an object (or function), together with the type of what it points to.
Programming in C · topic
Address and indirection operators, pointer arithmetic and comparisons, void pointers and null pointers, pointers to pointers, const placement, function pointers, reading declarations, malloc, calloc, realloc and free, leaks, double free, dangling and wild pointers, and linked structures.
A pointer is a value that holds the address of an object (or function), together with the type of what it points to.
In C a pointer can hold the address of a function as well as of an object.
Fixed-size automatic arrays have compile-time sizes, but a variable-length automatic array (VLA) can have a runtime size. Automatic objects have block-based lifetimes, not merely “until function return”; a VLA object lives from its declaration until execution leaves its scope.
A C array is a fixed number of objects of one type stored contiguously in memory. Arrays and pointers are closely tied: in most expressions an array name turns into a pointer to its first element, and the subscript a[i] is defined through pointer arithmetic.
One-page visual sheets for this topic, in the sheet library on the store. Previews are free; the full sheets come with the subject pack.