代码 :-
pu->queue[ pu->rear = (pu->rear + 1) % pu->size ] = x;
我知道队列的工作原理,但我只是对数组索引值内的分配变量感到困惑。这是一个好习惯吗?那样有用吗?我无法编译,因为我没有完整的代码。
编辑:-解决了。但该代码确实可以编译。现在我可以访问代码本身,它编译时没有警告。
它的简称
pu->rear = (pu->rear + 1) % pu->size;
pu->queue[pu->rear]
Run Code Online (Sandbox Code Playgroud)
表达式返回一个值,因此可以在更大的表达式中使用。语句不返回值,因此不能在表达式中使用(没有do { }-style 构造)。表达式通常可以用作语句(它的返回值被丢弃)。
在某些语言中,赋值是语句。在其他情况下,赋值是表达式。在 C 中,赋值是表达式。它们返回存储的值。像这样,
pu->queue[ pu->rear = (pu->rear + 1) % pu->size ]
Run Code Online (Sandbox Code Playgroud)
是简称
pu->rear = (pu->rear + 1) % pu->size;
pu->queue[pu->rear]
Run Code Online (Sandbox Code Playgroud)
该代码似乎正在实现一个循环缓冲区。