我研究如何在C中创建链接列表。看看this article。
首先,他使用以下代码创建结构;
struct node
{
int data;
struct node *next;
};
很清楚* next是节点类型的指针变量。
但是当他前进时,他会这样做;
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;
由于
答案 0 :(得分:4)
在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
答案 1 :(得分:1)
两者在技术上都是一样的.....
struct node *third = NULL;
struct node* third = NULL;
做同样的事情,因为编译器不计算空格。