At first, one typically does things such as
{} int id = 1 ; double xCoord = 2.34 ; cout << id << endl ; cout << xCoord << endl ;Pointers allow to put the real stuff somewhere else and to reference it by an address:
{} int* id ; *id = 1 ; double* xCoord ; *xCoord = 2.34 ; cout << *id << endl ; cout << *xCoord << endl;
What this means is that id itself contains just a memory address, and the real content is where this memory address points to. *(...) can thus be read as ``contents of (...)''.
This does not have any advantage at this level; but it has enormous advantages as soon as the content that the memory address points to is more than a simple number.