C语言——指针的用处

初识指针

若是没有指针

int swap (int p1,int p2)//swap函数进行指针地址的交换
{
	int temp;
	temp= p1; p1= p2; p2=temp;
} 
int main()
{
	int a=3,b=4;
	printf("交换前:a=%d,b=%d\n",a,b);
	swap(a,b);
	printf("交换后:a=%d,b=%d",a,b);
}

不运用指针的截图
可以看到函数内部并没有发生ab的交换

注意

函数只能实参传给形参,并不能形参传给实际参,所以我们需要应用到了指针。

int swap (int*p1,int*p2)//swap函数进行指针地址的交换
{
	int temp;
	temp=*p1;*p1=*p2;*p2=temp;
} 

swap函数改成这样之后,运行结果如下
在这里插入图片描述

二重指针的作用

由上面我们知道了一重指针可以用于交换变量那么,二重指针有什么用呢——平推过来就是二重指针是给函数改变一重指针的地址

#include <stdio.h>
#include <malloc.h>
#include <string.h>
void test(char **p)
{
    *p = (char*)malloc(10 * sizeof(char));
    strcpy(*p, "123456789" );   
}
void main()
{
    char *str = NULL ;
    test(&str);
    printf("%s\n", str);
    free(str);
}
————————————————
版权声明:本文为CSDN博主「HuffieWang」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/HuffieWang/article/details/51744043
  • 这是之前学习数据结构学习过的一个博主的文章感觉这个例子挺好的,可以看到这个例子中如果没有双重指针的话就会操作了空气是无法给str字符串赋值的

多重指针

多重指针在数据结构中起着很大的作用

//************************************************
//初始化函数
Status BST_init(BinarySortTreePtr P)
{
	P->root=(BinarySortTree*)malloc(sizeof(BinarySortTree));
	if(P->root==NULL)
	{
		printf("初始化失败,内存空间无法分配!\n");
		return ERROR;
	}
	else
	{
		P->root=NULL;
		printf("初始化成功!\n");
		return SUCCESS;
	}
}
  • 在这个函数中传进来的二叉树根节点就算是一个多重指针了,而P->root已经算是在上述例子中二重指针的*p了,所以由此可见指针以及多重指针的重要性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值