Я новичок в указателях, и есть этот код для объединения связанных списков. И здесь он объявил фиктивный узел как struct node dummy;
, а следующий узел для фиктивного узла - NULL, поэтому для его установки мы используем dummy.next = NULL;
.В чем разница между '->' между узлом struct и узлом struct *?
/* Link list node */
struct node
{
int data;
struct node* next;
};
struct node* SortedMerge(struct node* a, struct node* b)
{
/* a dummy first node to hang the result on */
struct node dummy;
/* tail points to the last result node */
struct node* tail = &dummy;
/* so tail->next is the place to add new nodes
to the result. */
dummy.next = NULL;
//Code continues...
}
Я понимаю, что я могу использовать его, если он был struct node *dummy;
, но мы не можем использовать его здесь, поскольку это не является узлом указатель. Так что мой вопрос, почему нет dummy->next = NULL
здесь? и какая разница между узлом struct и узлом struct * ??
Dummy не является указателем, поэтому '->' не работает. '->' предназначен только для указателей. – juanchopanza
Итак, в основном вы задаете разницу между указателем и нормальной переменной? – ameyCU