int main()
{
int a = 10;
int* p_a = &a;
int** pp_a = &p_a;
int*** ppp_a = &pp_a;
int**** pppp_a = &ppp_a;
std::cout << "a=" << a << " &a=" << &a << std::endl;
std::cout << "*p_a=" << *p_a << " p_a=" << p_a << " &p_a=" << &p_a << std::endl;
std::cout << "*pp_a=" << *pp_a << " **pp_a=" << **pp_a << " pp_a=" << pp_a << " &pp_a=" << &pp_a << std::endl;
std::cout << "*ppp_a=" << *ppp_a << " **ppp_a=" << **ppp_a << " ***ppp_a=" << ***ppp_a << " ppp_a=" << ppp_a << " &ppp_a=" << &ppp_a << std::endl;
std::cout << "*pppp_a=" << *pppp_a << " **pppp_a=" << **pppp_a << " ***ppp_a=" << ***pppp_a << " ****ppp_a=" << ****pppp_a << " pppp_a=" << pppp_a << " &pppp_a=" << &pppp_a << std::endl;
}
输出:
a=10 &a=0075FCC0
*p_a=10 p_a=0075FCC0 &p_a=0075FCB4
*pp_a=0075FCC0 **pp_a=10 pp_a=0075FCB4 &pp_a=0075FCA8
*ppp_a=0075FCB4 **ppp_a=0075FCC0 ***ppp_a=10 ppp_a=0075FCA8 &ppp_a=0075FC9C
*pppp_a=0075FCA8 **pppp_a=0075FCB4 ***ppp_a=0075FCC0 ****ppp_a=10 pppp_a=0075FC9C &pppp_a=0075FC90
&pppp_a 为四级指针本身的地址
pppp_a = &ppp_a
*pppp_a = ppp_a = &pp_a
**pppp_a = *ppp_a = pp_a = &p_a
***pppp_a = **ppp_a = *pp_a = p_a = &a
****pppp_a = ***ppp_a = **pp_a = *p_a = a