首页 > 其他 > 详细

16 二级指针

时间:2020-05-31 16:22:09      阅读:32      评论:0      收藏:0      [点我收藏+]
#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 二级指针

原文:https://www.cnblogs.com/abel2020/p/13019131.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!