猿问

请教下关于LinkQueue *&q 或者*q 或者&q 区别?

到数据结构 队列 指针和变量的问题void InitQueue(LinkQueue *&q) 和void InitQueue(LinkQueue &Q)就看不懂了 这两种有什么区别
void InitQueue(LinkQueue *&q)
{
q=(LinkQueue*)malloc(sizeof(LinkQueue));
if(!q)
exit(-1);
q->front=NULL;
q->rear=NULL;
}
void InitQueue(LinkQueue &Q)//构造一个空队列Q
{
Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode));
if(!Q.front)
exit(-1); //内存分配失败则退出
Q.front->next=NULL;
}
还看到过void InitQueue(LinkQueue *Q)//构造一个空队列Q的,这几种都对么?

RISEBY
浏览 293回答 1
1回答

慕的地8271018

宣告时的 &, 是一个参考的意思. 可以想成是定义一个变量的别名. 别名的使用如同一般变量.* void InitQueue(LinkQueue *Q) //传一个指针* void InitQueue(LinkQueue &Q) //传一个变量参考 (不需以指针形式操作, 同指针操作效果)* void InitQueue(LinkQueue *&q) // q是一个参考, 对应到一个指针
随时随地看视频慕课网APP
我要回答