A pointer is a variable that stores the address of another variable. Pointers allow variables to reference memory locations and access the values stored there. An array is a collection of variables of the same type stored contiguously in memory. Strings in C are arrays of characters terminated by a null character. Pointers can also be used to point to strings by storing the base address of the character array. Multidimensional arrays and manipulating strings are also discussed.