i doubt in hacking you ever will need more then *(type**). you would use *(type*) to get the value contained inside of the following address, and *(type**) to get the value contained inside the pointer at the address (my wording might be off).
for example:
say you find address 0x12345 in cheat engine or w/e, and it's a float type variable.
if you wanted to change the value in cheat engine, you just double click on value, and click change, right?
well in c++, you would do
Code:
*(float*)(0x12345) = 5; // only if you have direct memory access (using a dll)
the way i think of it is that you are "opening" the address, and telling the compiler that it's a floating point variable, because you didn't make it, so you have to manually tell the compiler. that's probobly not how it actually is, but it's how i think about it.
check out my assualtcube aimbot i posted here today to see examples of this.