Pointers in C programming store the address of other variables or memory locations. Pointers allow accessing and manipulating the data stored at those memory addresses. Pointers are useful for accessing arrays, dynamically allocating memory, and passing arguments by reference. Pointer variables must be declared with a data type and dereferenced using the * operator. Pointers can be initialized by assigning the address of another variable using the & operator. Pointer arithmetic allows incrementing or decrementing pointers to access successive memory locations.