16 二级指针

Posted abel2020

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了16 二级指针相关的知识,希望对你有一定的参考价值。

#include <stdio.h>

void fun(int** q);
void fun2(int** q);
main() {
    int* p;

    //把p的二级指针传给fun
    fun(&p);
    printf("%d", *p);


    //动态分配内存
    fun2(&p);

}
//-----------------------------------------------------------------------------------------------

void fun(int** q) {
    int s = 100;
    *q = &s;

}
/*上面函数的意思是:
int **q;        定义二级指针q   即 q   指向   *q  ,*q 可以指向一个整形
*q=&s       *q 指向整形s
q=&p       调用时,赋值

综上:  q->*q->s
               q->p
所以:   p->s

结论:    把指针p 的指针(地址&p=q)传给一个函数后*q= p  ,
                对*q即是对p进行操作 ,此时*q是指针,可以指向s
*/

//-----------------------------------------------------------------------------------------------
void fun2(int** q) {

    *q = (int*)malloc(sizeof(int));

}
/*上面函数动态申请内存

不释放
调用完成后,主函数可以继续使用fun2 申请的内存

*/

 

以上是关于16 二级指针的主要内容,如果未能解决你的问题,请参考以下文章

16 二级指针

20160210.CCPP体系详解(0020天)

20160210.CCPP体系详解(0020天)

二级指针创建二维数组

二级指针创建二维数组

C 语言二级指针作为输出 ( 指针输入 | 指针输出 | 二级指针 作为 函数形参 使用示例 )