A pointer in C is a variable that stores the memory address of another variable. Instead of holding data itself, a pointer holds the location where the data is stored in memory. Pointers are used to directly access and modify the value of variables through their addresses. To declare a pointer, the asterisk (*) symbol is used. For example, int *ptr;
declares a pointer to an integer. Pointers are essential in C for dynamic memory allocation, function arguments, and working with arrays.