下面的C++代码行是什么意思

What does the following C++ line of code mean?

本文关键字:是什么 意思 代码 C++      更新时间:2023-10-16

以下代码块取自实现队列的C++程序。我知道结构、类和指针等,但我不经常使用结构,所以它让我很难理解*front = NULL,*rear = NULL,*p = NULL,*np = NULL;的含义。是否声明了这些节点类型指针,并将其设置为默认值NULL?如果我错了,请纠正我,并友好地解释。

struct node
{
    int data;
    node *next;
}*front = NULL,*rear = NULL,*p = NULL,*np = NULL;

它与相同

struct node
{
    int data;
    node *next;
};
node *front = NULL, *rear = NULL, *p = NULL, *np = NULL;

意思与此相同:

struct node
{
    int data;
    node *next;
};
node *front = NULL;
node *rear = NULL;
node *p = NULL;
node *np = NULL;

而且这绝对不是一个好的风格。

顺便说一句,如果node是一个类,这也会起作用。结构基本上是一个类,默认情况下所有元素都是公共的。

另一个建议是:C++11有一个用于初始化指针的特定关键字nullptr。这更清楚地表达了正在发生的事情。NULL只是一个扩展到0的预处理器宏。