線性表的注意點(一)

經常我們會遇到以下代碼

typedef struct node { 

     int ;

      PNode next;

}  PNode,*Linklist;

這樣可能看不懂讓我們來慢慢簡化。

typedef  struct node {
    int  data ;

    struct node * next;

} PNode,*LinkList;

再來

struct node { 

    int data; 

    struct node *next;

};
typedef struct node PNode;

typedef struct node *Linklist;

到這里想必大家都一目了然了,下面在說說個誤區

struct node { 

    int data; 

    struct node *next;

} PNode;

對比

typedef  struct node {

    int  data ;

    struct node * next;

} PNode;

這兩處的PNode分別是什么呢?
下面我這樣寫你估計就明白了

struct node { int data; struct node *next ;}   PNode;   //  等同于 struct node PNode;

typedef  struct node {int  data ;struct node * next;}   PNode;     //   等同于  typedef struct node PNode;

這里想必大家都明白了

struct node { 

    int data; 

    struct node *next;

} PNode;

// 這里面node是一個標記,而PNode是一個結構體變量


typedef  struct node {

    int  data ;

    struct node * next;

} PNode;

// 這里面node是一個標記,而PNode等同于 struct node

// 我們定義結構體變量的時候是用 strcut node 變量名;所以可以用 PNode 變量名;

// 當然結構體可以省略標記如:

struct   { 

    int data; 

    struct node *next;

} PNode;

// 但是我們要給他個結構體變量名,不然就無法申明結構體變量了,這里以后只能用PNode這個結構體變量了,因為我們無法再聲明別的結構體變量(缺乏標記)

// 但是我們依然可以用typedef來定義這樣我們就解決了不能再次聲明結構體變量的煩惱了

typedef  struct  {

    int  data ;

    struct node * next;

} PNode;

// 這里可以用PNode盡情的聲明了。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,558評論 25 708
  • 無眉從小就和師父在終南山修行,師父武功高強,擅長用劍,一手君子劍舞的是天下無雙,但是師父卻從來不教她劍法,只是教她...
    方宛閱讀 516評論 0 0
  • 公辦教育是全國教育的絕對主流,覆蓋了全國絕大部分的適齡學生,擁有絕大多數的教育工作者,占據幾乎所有的國家教育資源,...
    雒渭閱讀 716評論 2 3
  • 建立搜索幫助需要調用一個函數F4IF_INT_TABLE_VALUE_REQUEST具體用法:
    Mmm_余安閱讀 364評論 0 0