Quote:
p->next->next
See it as a two-steps operation:
p->next
gives you the pointer to the next element of the list, then
(p->next)->next
gives you the pointer to the element immediately following the next, that is the pointer to the item 'at distance 2'.
Quote:
p->next->data
With a similar argument, you may write
(p->next)->data
showing you are accessing the
data
member of the next element of the list.