typedef struct與struct的區別

1、typedef爲C語言的關鍵字

作用:爲一種數據類型定義一個新名字。這裏的數據類型包括內部數據類型(int,char等)和自定義的數據類型(struct等)。

2、在編程中使用typedef目的一般有兩個:

    1) 給變量一個易記且意義明確的新名字

    2) 簡化一些比較複雜的類型聲明

3、應用

    1)  typedef的最簡單使用

       例如: typedef long byte_4 ;

       上述代碼實現的是:給已知的數據類型long起個新名字,叫byte_4。


    2)  typedef與結構結合使用

typedef struct Node
{
    int num;
    struct Node *next;
} LinkList  ;

上述代碼實現的是:(1) 定義一個新的結構類型

typedef struct Node
{
    int num;
    struct Node *next;
};

                                    (2) typedef爲這個新的結構起了一個名字,叫 LinkList

於是在聲明變量的時候就可表示爲:

 LinkList 變量名;
如果沒有typedef就必須表示爲:

struct Node 變量名;

總結:這裏的 LinkList 實際上就等價與 struct Node

4、 應用

        1) 鏈表的數據結構

typedef struct Node
{
    int num;
    struct Node *next;
} LinkList;
2) 創建鏈表LinkList *creat(int n)

LinkList *creat(int n)
{
    LinkList *p,*q,*head;
    int i = 1;
    p = (LinkList *)malloc(sizeof(LinkList));  //動態內存分配
    p -> num = i;
    head = p;
    for(i = 2; i <= n; i++)
    {
        q = (LinkList *)malloc(sizeof(LinkList));
        q -> num = i; //  ——>表示指向結構體成員  優先級最高
        p -> next = q;
        p = q;
    }
    p -> next = head;          /*使鏈表尾指向鏈表頭,形成循環鏈表*/
    return head;
}








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章