2014-11-14 78 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*

這個變量將指向存儲在內存中的下一個節點的地址?

如果你給它分配一個正確的值,那麼它會。