我正在研究如何在C中创建链表。看看这篇文章。
首先,他使用以下代码创建结构;
struct node
{
int data;
struct node *next;
};
很明显,*next是node类型的指针变量。
但当他前进时,他会这样做;
struct node* head = NULL;
struct node* second = NULL;
struct node* third = NULL;
现在我很难理解他想做什么;他是在创造名字的节点,头,第二和第三?或者他只是试图创建节点类型的指针变量?
因为他把它们设为NULL;我认为他正试图创建指针变量。但他不能用这个做同样的事吗?
struct node *head = NULL;
struct node *second = NULL;
struct node *third = NULL;
感谢
在C中,*
之前或之后的空白是没有意义的。因此:
struct node *head;
struct node * head;
struct node* head;
struct node*head;
都完全一样。C不在乎那个空白。
当你申报多个项目时,你会遇到麻烦:
struct node *head, tail; // tail is not a pointer!
struct node *head, *tail; // both are pointers now
struct node * head, * tail; // both are still pointers; whitespace doesn't matter
两者在技术上是相同的。。。。。
struct node *third = NULL;
struct node* third = NULL;
做与编译器不计算空格相同的事情。