2014-11-14 79 views
1

我想C语言创建一个双向链表typedef和指针和我有一个关于代码如下一个问题:结构和用C

typedef struct Node{ 

    double coeff; 
    int exp; 
    struct Node* next; 
    struct Node* prev; 

}Node; 

我的问题

在线路(5 ) 以上;说我正在创建一个名为next的指针变量是否正确?而这个变量的类型是Node?这个变量会指向存储在内存中的下一个节点的地址吗?

Node *与Node *指针相同吗?

感谢您的帮助;在我进一步发展之前,我想让我的基础扎实。

+1

是的,但你必须确保它将指向存储在内存中的下一个节点的地址。而'*'之前或之后的空格对它的意义没有影响。 – wimh 2014-11-14 23:23:55

+3

'next'的类型是'struct Node *'(一个指向'struct Node'的指针)。除非您设置它,否则它不指向有效内存。 – clcto 2014-11-14 23:24:08

+1

在C中,你已经定义了一个'struct Node'类型,并且在结构体的定义过程中使用它。别名('typedef')名称'Node'直到最后一个分号才定义;它在此之前不能使用。如果你在问'struct Node * next;'和'struct Node * next'之间的区别,唯一的区别就是间距。但是,请注意,如果你编写了'struct Node * next,* prev;','next'和'prev'都是指针;相反,如果你写了'struct Node * next,prev;',那么'next'是一个指针,但'prev'是一个普通的'struct Node',而不是一个指针。 – 2014-11-14 23:28:25

回答

0

在上面的第(5)行中;说我正在创建一个名为next的指针变量是否正确?

您已经使用名为next(和其他)的成员定义了一个类型struct Node

而这个变量的类型节点?

next有型struct Node*

这个变量将指向存储在内存中的下一个节点的地址?

如果你给它分配一个正确的值,那么它会。