Теперь я знаю, почему указатели используются для определения связанных списков. Просто потому, что структура не может иметь рекурсивного определения, и если бы не было указателей, компилятор не сможет вычислить размер структуры узла.Почему первый узел связанного списка объявлен как указатель?
struct list{
int data;
struct list* next; // this is fine
};
Но путаница подкрадывается, когда я объявляю первый узел связанного списка, как:
struct list* head;
Почему это должен быть указателем? Нельзя ли его просто объявить как
struct list head;
и адрес этого для использования в дальнейшем? Пожалуйста, уточните мои сомнения.
Как вы бы описали пустой список? –
Итак, это единственная причина, почему первый узел используется как указатель ...? – copo
Этот и любой другой узел в списке ссылок является указателем. – NathanOliver