二级指针

    技术2022-05-20  85

    二级指针

     

    1:int * p[5];

    []的优先级高于*.表示数组元素的类型为指针,每个数组元素都指向一个整形变量,p就成了一个二级指针.

     

    2:

    #include <stdio.h>

    int main()

    {

    int a[5]={1,3,5,7,9};

    int *p[5],i;

    int **pp=p;

     

    /*Explain:

    p[5]是一个数组,它的每一个元素都指向一个整形变量,把数组a[5]的各个元素的地址给p[5]

    使数组p[5]的每一个元素都指向a[5]的一个元素

     */

    for(int i=0;i<5;i++)

     p[i]=&a[i];

     

    /*Explain:

    *p[i]=*(p[i])=* (&a[i]) =a[i]

     */

    for(int i=0;i<5;i++)

     printf ("%d ",*p[i]);

    printf(/n");

     

    /*Explain:

    ppp都是二级指针,即指针的指针,对于**pp,i=0,*pp=p[0]=&a[0]

    **pp=*(&a[0])=a[0]

    */

    for(int i=0;i<5;i++,pp++)

     printf ("%d ",**pp);

    printf(/n");

    }

    二级指针,数组的关系图:

     


    最新回复(0)