c语言 - 数据类型*<变量名称>与数据类型*<变量名称>之间的差异



我正在研究如何在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;

做与编译器不计算空格相同的事情。

相关内容

  • 没有找到相关文章

最新更新