Выполнение b->head
- это просто удобная синтактика c сахар для выполнения (*b).head
.
Вы должны разыменовать указатель на структуру, прежде чем сможете использовать на ней точечную запись, поэтому вы не можете do b.head
.
Причина, по которой вы не можете сделать a->head
, заключается в том, что a
не является указателем, поэтому на него нельзя ссылаться. Оператор разыменования *
имеет смысл только для указателей.