私はcとポインターに非常に慣れていません。理解したと思うたびに、よくわからない問題が発生します (c ドキュメントを読むのに時間を費やしましたが、ポインターはまだ不明なままです)。
typedef struct {
int q[QUEUESIZE+1];
int first;
int last;
int count;
} queue;
enqueue(queue *q, int x)
{
if (q->count >= QUEUESIZE)
printf("Warning: queue overflow enqueue x=%d\n",x);
else {
q->last = (q->last+1) % QUEUESIZE;
q->q[ q->last ] = x;
q->count = q->count + 1;
}
}
私の質問が不透明になりすぎないことを願っていますが、誰かがエンキュー関数でのポインターの使用について説明できますか? キューイングの原理は、正確な連続したメモリアドレスを割り当てることだと思っていましたが、そうではありません....