指向指针的指针

int main()
{
    int a=10;
    //指向变量a的指针
    int *p=&a;
    //指向指针p的指针
    int **pp=&p;
    //指向 指向指针的指针pp 的指针
    int ***ppp=&pp;
    //释放指针(指向空)
    //p=NULL;或者p=0;

    //*&p --相当于-- &*p
    printf("1.&a=\t%p , &p=\t%p \n &pp=\t%p , &ppp=\t%p\n\n",
           &a,&p,&pp,&ppp);

    printf("2.&a=\t%p , &*p=\t%p \n &*pp=\t%p , &*ppp=\t%p\n\n",
           &a,&*p,&*pp,&*ppp);

    printf("3.&a=\t%p , &*p=\t\t%p \n &**pp=\t%p , &**ppp=\t%p\n\n",
           &a,&*p,&**pp,&**ppp);

    printf("4.&a=\t%p , &*p=\t\t%p \n &**pp=\t%p , &***ppp=\t%p\n\n",
           &a,&*p,&**pp,&***ppp);

    //pp中存放的是p的地址,而p中存放着a的地址,因此*pp == p == &*p == &a
    printf("5.&a=\t%p , p=\t%p \n *&p=\t%p , *pp=\t%p \n "
           + "**ppp=\t%p\n\n",
           &a,p,&*p,*pp,**ppp);

    printf("6.a=\t%d , *p=\t%d \n **pp=\t%d , ***ppp=\t%d\n",
           a,*p,**pp,***ppp);
}

输出结果

1.&a=   0x7fff560b6c2c , &p=    0x7fff560b6c20 
 &pp=   0x7fff560b6c18 , &ppp=  0x7fff560b6c10

2.&a=   0x7fff560b6c2c , &*p=   0x7fff560b6c2c 
 &*pp=  0x7fff560b6c20 , &*ppp= 0x7fff560b6c18

3.&a=   0x7fff560b6c2c , &*p=       0x7fff560b6c2c 
 &**pp= 0x7fff560b6c2c , &**ppp=    0x7fff560b6c20

4.&a=   0x7fff560b6c2c , &*p=       0x7fff560b6c2c 
 &**pp= 0x7fff560b6c2c , &***ppp=   0x7fff560b6c2c

5.&a=   0x7fff560b6c2c , p=     0x7fff560b6c2c 
 *&p=   0x7fff560b6c2c , *pp=   0x7fff560b6c2c 
 **ppp= 0x7fff560b6c2c

6.a=    10 , *p=        10 
 **pp=  10 , ***ppp=    10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值