It's easy to understand roles of pointers in C. Variables hold the data in memory. And pointers are pointing to space where variables are holding the data. These pointers come in different forms - integer, float and void. Integer pointer have whole numbers and no decimal points. In case of float pointer, it contains the numbers with decimal pointer. As for the void t does not have the return value.
C is less likely to be used for desktop level software. C and C++ are used on creating system level software. Here you need pointers to free up memory space. And also for things like clearing ROM or operating system cache. So this has it's use on system level software.