I have used such construct in C:
list->head = list->tail = NULL;
and now I consider whether this really mean what I suppose.
The assignment operator is right to left associative.
Thus this expression statement
is equivalent to
list->tail = NULL; list->head = list->tail;