q–front=(q–>front+1)%queuesize;,请问这一句咋理解?

datatype dequeue(cirqueue *q)
{
datatype temp;
if(queueempty(q))
error(“queue underflow”);
temp=q–>data[q–>front];
q–>count--;
q–front=(q–>front+1)%queuesize;
return temp;
}
这一句怎么理解: q–front=(q–>front+1)%queuesize;
那q->front=q->front+1就够了,为什么还要对queuesize求余。

繁星coding
浏览 429回答 2
2回答

隔江千里

q–front=(q–>front+1)%queuesize;是错的q->front=(q->front+1)%queuesize;才对,这句话说明q是指针,他指向一个结构体类型的变量(可能是共用体类型的变量),而这类型里定义一整形变量front。q引用变量front,使front原来的值加1然后对queuesize变量求余,并赋给q所引用的front 可以抽象的理解为front=(front+1)%queuesize那你说n=10, n=n+1和n=(n+1)%5 的意义是一样的吗? 显然不一样,这要看你的程序主要是干嘛用的。

慕容3067478

求于的目的是为了防止front大于queusize,当大于queuesize时,又从0开始
打开App,查看更多内容
随时随地看视频慕课网APP