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

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

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

繁星coding 2022-06-09 17:07:54
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求余。
查看完整描述

2 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

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 的意义是一样的吗? 显然不一样,这要看你的程序主要是干嘛用的。

查看完整回答
反对 回复 2022-06-14
?
慕容3067478

TA贡献1773条经验 获得超3个赞

求于的目的是为了防止front大于queusize,当大于queuesize时,又从0开始

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

添加回答

举报

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