It compiled and the The second line didn't crash and burn as it would have done if
it was a function pointer
and cout << Target << " " << *Pointer << endl; gave the same values.

I still can't quite understand why int **Pointer( &Target ); doesn't work -
but I assume the ** coupled with the () constructor throws the normal compiler
parsing as it probably expects a single type - putting the (**) gets rid of any ambiguity.

DISCLAIMER
The above explaination is pure guesswork.
I did that in MSVC - I'll see what MINGW does.