指针的引用 *&

1. 指针的引用就是对指针变量的引用

解释一下就是

typedef int* PINT;	//给指向整形的指针类型定义一个新名字PINT
PINT *p1;			//定义一个指向指针的指针
PINT &p2;			//为指针定义一个别名p2

2. 指针的引用有什么用

以链队初始化为例

typedef struct	//结构体定义
{
	QNode *front;
	QNode *rear;
}LiQueue;
void initQueue(LiQueue *&lqu)	//初始化队列
{
	lqu = (LiQueue*)malloc(sizeof(LiQueue));
	lqu -> front = lqu->rear = NULL;
}

函数形参为 *&lqu ,即传入的是对指向LiQueue的指针的引用,这样对传入的指针赋值,调用函数时传入的指针指向也会改变

如果形参LiQueue *lqu不是指针的引用,
那么对形参进行重新赋值不会影响到实参的值
原指针未受到影响,队列初始化失败

注意:
能否理解的重点是
如果不是指针引用
指针的指向改变并不能影响原指针的指向
指针指向的值的改变可以影响到原值

也就是说
如果不是指针引用,
形参指针指向改变对实参指针指向没有影响,
形参指针指向值大小改变,实参指针指向值大小随之改变

理解实参和形参是什么

猜你喜欢

转载自blog.csdn.net/magicdoubi/article/details/98171260
今日推荐