Очередь приоритетов C

Я пытаюсь создать priority queue используя массив очередей, каждый индекс массива является приоритетом. Я попробовал следующее решение,

Тип данных очереди содержит список массивов,

 Queue *q_create(int size) { struct queue *p; struct q_head *h; int i; if ((p = (struct queue *)malloc(sizeof(struct queue))) != NULL) { p->size = size; for (i = 0; i llist[i]); h->head = NULL; h->tail = NULL; } } return p; } 

Меня смущает строка: h = &(p->llist[i]); Я думал, что llist[i] = h . Это еще один способ написать его в C? Я читаю его как h = the address of llist[i] . Это правильно?

Спасибо

Я читаю его как h = адрес llist [i] Это правильно?

Да.

Да, вы должны прочитать, что назначьте адрес p->llist[i] на h . Это не то же самое, что и llist[i] = h .

Этот код использует h в качестве короткого замыкания, чтобы избежать необходимости вводить p->llist[i] дважды для двух последующих строк.