【问题标题】:What does the following C++ line of code mean?以下 C++ 代码行是什么意思?
【发布时间】:2016-04-03 21:18:17
【问题描述】:

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

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

【问题讨论】:

    标签: c++ pointers data-structures struct


    【解决方案1】:

    和这个一样

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

    【讨论】:

      【解决方案2】:

      意思是一样的:

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

      而且绝对不是什么好风格。

      顺便说一句,如果node 是一个类,这也可以。 struct 基本上是一个类,默认情况下所有元素都是公共的。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-02
        • 2015-06-17
        • 1970-01-01
        相关资源
        最近更新 更多