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 的意義是一樣的嗎? 顯然不一樣,這要看你的程序主要是干嘛用的。
添加回答
舉報
0/150
提交
取消