首页 > 编程知识 正文

c语言一级指针和二级指针,C语言二级指针

时间:2023-05-03 19:04:05 阅读:231311 作者:4532

在之前的文章 《二级指针的作为函数形参的深入理解》 我们分析了二级指针的使用,这里我们再简单的的做个小结。

一级指针作为入参

一级指针作为入参,在函数内部是要对该指针进行 简介引用,操作一级指针指向的内存,也就是这个入参的是直接 引用和修改的。不能作为 内存地址返回。 ,如果想要返回一个地址,可以直接让函数进行返回。

// 错误 -- 指针是[传值调用]int func(char *p){char *a = malloc(10*sizeof(char));p = a; // 指针是传值调用,这里的p其实是 入参 p的 副本,并不是preturn 0;}// 正确char *func(int size){char *p = malloc(10*sizeof(char));return p;} 二级指针入参

二级指针作为入参,目的就是为了返回一个地址。这样会比较绕,但是非常适合于,既能返回地址,又能返回一个结果的情况。

int func(char **p, int size){char *a = malloc(10*sizeof(char));if(a == NULL){ return -1;}else{*p = a;return 0;}}// 我们在调用时,一般不用传入一个二级指针,而是传入一个一级指针的地址,int main(void){ char *p; int rc; rc = func(&p, 10);return rc; } 小结

1、入参为一级指针,就是对指针指向的内存直接操作。
2、入参为二级指针,可以通过形参返回一个地址,如果觉得绕,不方便理解,可以通过函数直接返回。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。