5、多级指针

 

 

 使用多级指针的目的:跨函数使用内存

1、多级指针的定义

# include <stdio.h>

int main(void)
{
    int i = 10;
    int * p = &i;  //p只能存放int类型变量的地址
    int ** q = &p;  //q是int **类型, 所谓int **类型就是指q只能存放int *类型变量的地址,     
    int *** r = &q;  //r是int ***类型, 所谓int ***类型就是指r只能存放int ** 类型变量的地址, 

    //r = &p;  //error 因为r是int *** 类型,r只能存放int **类型变量的地址
    printf("i = %d\n", ***r); //输出结果是10  只有 ***r才表示的是i, *r或 **r或 ****r代表的都不是i

    return 0;
}

2、多级指针在主函数和被调函数之间的使用

void f(int ** q)
{
    //*q就是p    
}

void g()
{
    int i = 10;
    int * p = &i;类型

    f(&p); //p是int *类型 , &p是int ** 类型
}

int main(void)
{
    g();
    return 0;
}

  

posted @ 2020-04-06 12:44  zh_小猿  阅读(163)  评论(0编辑  收藏  举报