Linked List Tutorial sample code question
Hello everybody,
http://www.cprogramming.com/tutorial/c/lesson15.html
in the sample code of that Tutorial, which shows how one can traverse a linked list, there are some things I don't understand. Here is the part of the code. I've added a comment to the line I don't understand:
Code:
/*...*/
struct node {
int x;
struct node *next;
};
int main()
{
/* This won't change, or we would lose the list in memory */
struct node *root;
/* This will point to each node as it traverses the list */
struct node *conductor;
root = malloc( sizeof(struct node) );
root->next = 0; /* QUESTION: Why giving root->next a null pointer? */
root->x = 12;
conductor = root;
if ( conductor != 0 ) {
while ( conductor->next != 0)
{
conductor = conductor->next;
}
}
/*...*/
}
Why is root->next set to a null pointer? Isn't root->next a null pointer by default?
Furthermore, there are 2 things I don't understand:
1. What is the use for "if ( conductor != 0 )" when they just wrote conductor = root before?
2. What is the goal of "while ( conductor->next != 0)"? If you just wrote "root->next = 0; conductor = root;" then is "conductor->next" in any case also 0! So the checking "while ( conductor->next != 0)" doesn't make any sense, because it's always 0.