报错 invalid initialization of non-const reference of type,如何解决?(语言-c++)

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图

//定义顺序队列
typedef struct{

int data[Maxsize];
int front;
int rear;

} SqQueue;

//初始化队列
void initQueue(SqQueue *qu){

qu->front = qu->rear = 0;

}
//入队
int enQueue(SqQueue &qu, int x){

if((qu.rear+1)%Maxsize==qu.front){
    return 0;
}
qu.data[qu.rear] = x;
qu.rear = (qu.rear+1)%Maxsize;
return 1;

}
int main(){

SqQueue qu;
initQueue(&qu);
int status = enQueue(&qu, 1);

return 1;

}

运行结果及报错内容

[Error] invalid initialization of non-const reference of type 'SqQueue&' from an rvalue of type 'SqQueue*'
[Note] in passing argument 1 of 'int enQueue(SqQueue&, int)'

我的解答思路和尝试过的方法
我想要达到的结果

&表示引用,所以给enQueue的第一参数传一个结构指针会报错,改为变量本身qu就可以了,引用和指针的作用差不多,不过也有点区别。
参考链接:https://blog.csdn.net/caozixuan98724/article/details/73395598/

#include <stdio.h>
#define Maxsize 3

//定义顺序队列
typedef struct{
    int data[Maxsize];
    int front;
    int rear;
} SqQueue;

//初始化队列
void initQueue(SqQueue *qu){
    qu->front = qu->rear = 0;
}
//入队
int enQueue(SqQueue &qu, int x){
    if((qu.rear+1)%Maxsize==qu.front){
        return 0;
    }
    
    qu.data[qu.rear] = x;
    qu.rear = (qu.rear+1)%Maxsize;
    
    return 1;
}
int main(){
    SqQueue qu;
    initQueue(&qu);
    int status = enQueue(qu, 1);
    //printf("status=%d.\n",status);
     
    return 1;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632