以结构化方法实现队列

时间:2018-10-06 15:22:10

标签: c queue structure

对于我制作队列程序的结构化方法,在涉及指针时,语法和数组索引存在一些问题。我已经标出了我遇到麻烦的路线。这些都是不是正确转换的问题,还是语法不正确的问题?

Wrong

1 个答案:

答案 0 :(得分:0)

您必须记住,用array[index]索引数组等同于操作*(array + index)。因此,让我们来了解一下您当前正在做什么以及为什么它不正确。

您有一个变量int **queue,它是一个指向int的指针。然后您想要提取前面并将其放在变量int *front中。您当前的方法是:

int *front = (*queue)[0];

并使用等价的高位进行翻译:

int *front = *((*queue) + 0)

第一个(*queue)解引用queue并产生一个int *。然后,将0添加到int *中,得到相同的内容,然后取消引用。取消引用int *的收益是什么?

提示:您不应直接通过int *fooint bar分配给foo = bar

继续讨论其他问题,数组下标必须为整数。查看int * rear的类型应该可以清楚地说明为什么array[rear]会发出警告。

如果应该int *rear 指向到队列的后面,为什么不只使用它作为指针而不是尝试使用它为队列建立索引?:)