栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言函数参数:一级指针、二级指针的应用小结

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言函数参数:一级指针、二级指针的应用小结

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

一级指针作为入参

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

// 错误 -- 指针是[传值调用]
int func(char *p)
{
	char *a = malloc(10*sizeof(char));
	p = a;   // 指针是传值调用,这里的p其实是 入参 p的 副本,并不是p
	return 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、入参为二级指针,可以通过形参返回一个地址,如果觉得绕,不方便理解,可以通过函数直接返回。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/346838.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号