int *p; int **pp; int a = 9; p = &a; pp = &p; cout << "&a: " << &a cout << "&p: " << &p cout << "&pp: " << &pp cout << "pp : " << pp cout << "*pp: " << *pp cout << "&*pp: " << &*pp &&p and &&pp aren't defined in c++ so they are wrong using, but what &*pp is meaning? Is &*pp equalent to &&a?
When the program is starting, the result is as follows:
&a: 00AEFAE4 &p: 00AEFAFC &pp: 00AEFAF0 pp : 00AEFAFC *pp: 00AEFAE4 &*pp: 00AEFAFC (=&p ???) On the other hand, why is &*pp equalent to &p?
&*pplooks like you dereferencepptopand then take the address again so effectively it is&p, but can't be sure without more information.*ppisp?