指向节点和节点作为整个对象的指针之间的区别?

时间:2016-10-24 15:23:16

标签: c++ list pointers doubly-linked-list

如果我有结构:    / *链接列表结构* /

struct list 
{
   struct list *prev;
   int data;
   struct list *next;
} ** *node = NULL, *first = NULL, *last = NULL, *node1 = NULL, *node2 = NULL**;

class linkedlist {
public: 

    /* Function for create/insert node at the beginning of Linked list */
    void insert_beginning() {
        **list *addBeg = new list;**
        cout << "Enter value for the node:" << endl;
        cin >> addBeg->data;
        if(first == NULL) {
            addBeg->prev = NULL;
            addBeg->next = NULL;
            first = addBeg;
            last = addBeg;
            cout << "Linked list Created!" << endl;
        }
        else {
            addBeg->prev = NULL;
            first->prev = addBeg;
            addBeg->next = first;
            first = addBeg;
            cout << "Data Inserted at the beginning of the Linked list!" << endl;
        }
    }

在同一程序中使用创建新节点(具有2个指针和数据)和仅与节点分开的单个指针之间的SYNTAX区别是什么。 (粗体部分之间的差异)

1 个答案:

答案 0 :(得分:0)

以下是一些例子。

声明node变量

node n;

此处nnode类型的变量或实例。

声明指向node类型

的指针
node * pointer_to_node;

注意类型标识符后面的**用于声明指针。

还要注意指针没有指向任何东西。

指向指针
指针可以指向其类型的任何内容。所以以下内容是有效的:

node n;
node * pointer_to_node = &n;

在上面的示例中,pointer_to_node被初始化为指向变量n

node * pointer_to_dynamic = new node;

在上面的语句中,程序在动态内存中分配node个实例。内存的位置分配给pointer_to_dynamic变量。换句话说,变量pointer_to_dynamic现在指向新分配的动态内存。