First of all: The direct use of pointers can be dangerous and occasionally lead to errors even for experienced programmers. This is why you should be very careful when using pointers.
Pointers are necessary to use dynamically allocated memory. In other words a pointer is a variable whose content contains the position of another variable in main memory. A pointer variable is used to refer to and access memory contents indirectly.
Pointers are important for efficient and machine-oriented programming.