原创 指向指针的指针

2009-1-14 11:40 3172 6 6 分类: 软件与OS

    指向指针的指针,顾名思义,就是定义一个指针变量,它的值是一个地址,指向的是另一个指针变量的地址。


    要理解这个内容,首先需要掌握指针数组的概念。int *pt[4]就是一个指针数组,因为[]的优先级比*高,所以,pt是个数组,其数组元素的值是指向int型变量指针的地址,如:


int a[4]={1,2,3,4}


int *pt[4]={&a[0],&a[1],&a[2],&a[3]}


printf("%d",pt[0])     &a[0],即a[0]的地址


printf("%d",*pt[0])   a[0]的值:1


    这时,如果希望获取&pt[0]的地址,可以再次定义一个指针**p,可以看作是


*(*p),一个指针变量,所指向的是另外一个指针变量,所以,p的值可这样得到:p=&pt[0]


    此时,要从p得到a[0]的值1,便可以通过指针的二次指向获得


   *p:一次间接获取-->pt[0]的值,是个地址,&a[0]


   把(*p)看作是一个地址,注意不要搞混


  *(*p):从这个地址中再次间接指向,取得a[0]的值:1


int a[4]={1,2,3,4}


int *pt[4]={&a[0],&a[1],&a[2],&a[3]}


int **p;


p=&pt[0];


printf("%d",p)     得到指针数组元素 pt[0]的地址 &pt[0]


printf("%d",*p)   得到a[0]的地址,&a[0]


printf("%d",**p) 得到a[0]的值:1

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
6
关闭 站长推荐上一条 /3 下一条