为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

RISEBY 2022-06-10 11:07:32
到数据结构 队列 指针和变量的问题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的,这几种都对么?
查看完整描述

1 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

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

查看完整回答
反对 回复 2022-06-14
  • 1 回答
  • 0 关注
  • 292 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信