結構體是c程式設計中一種使用者可自定義的資料型別,它允許你儲存不同的資料型別的資料項。
為了定義結構,必須使用struct語句。struct語句定義了乙個包含多個成員的新的資料型別。
struct ta**ariable-name;
其中tag為結構體標籤,elemtype代表資料型別,比如說int,float,char等,name是變數名,variable-name代表這個結構體的變數名稱。
定義結構體有很多方式。
第一種
struct book
book;
在這裡面我們定義了乙個結構體struct book,book為乙個結構體變數。模擬於int prices,struct book就相當於int ,而book相當於乙個prices。但是這種方式定義結構體變數不夠方便。
第二種方式。
struct book
;struct book book1;
struct book book2;
在這裡我們使用結構體struct book定義了兩個結構體變數book1,book2.但是這樣使用struct book還是沒有使用int char那麼方便,感覺加上乙個struct很彆扭。
typedef為c語言的關鍵字,它可以為資料型別取乙個新的名字。比如說int i,j;
,我們可以使用typedef int x;
,這裡我們將int重新命名為x。x i,j;
的效果與前面的int i,j;
相同。
為了方便使用結構體,我們可以使用typedef struct book book;
這樣,我們再定義乙個新的strcut book結構體型別的變數時,可以直接用book book1,book2;
,這樣就看著方便了很多。
typedef struct lnode
lnode, *linklist;
在書中的這個例子中,lnode為這個結構體的乙個變數,而linklist為指向這個結構體的指標型別。相當於 struct lnode lnode 和struct lnode* linklist。其中lnode *p
中的p和linklist l
中的l是一樣,都是指向結構體lnode的指標變數,這裡是為了讓linklist l特意指向頭節點,與其他普通的節點分開,才特意多設定乙個linklist指標型別。
簡單來說我們可以使用.來訪問結構體中的成員,比如說book1.prices
就可以訪問prices的值。如果說是book *book;book = &book1
,這裡book是乙個指向book1的指標變數。指向結構的指標訪問結構體成員的方法不同,就要使用->符號。這時訪問prices的方法為book->prices
。
C語言 資料結構 結構體
一 結構體的定義 陣列 array 是一組具有相同型別的資料的集合。但在實際的程式設計過程中,我們往往還需要一組型別不同的資料,例如對於學生資訊登記表,姓名為字串,學號為整數,年齡為整數,所在的學習小組為字元,成績為小數,因為資料型別不同,顯然不能用乙個陣列來存放。結構體 struct 可以來存放一...
C 語言中的結構體(資料結構)
結構體是在資料結構中經常使用的一類,下面對結構體進行一些知識的補充 結構體宣告的基本形式 struct tag variable list 引數解釋 tag 結構體的名字 member list 成員列表 variable list 變數列表 在結構體宣告的時候,我們常會看到下面兩種宣告的方式 方式...
C 資料結構(結構體struct)
定義結構體 下面是宣告乙個結構體型別 mybook 變數為 book 定義結構體 struct mybook book 訪問結構體 為了訪問結構的成員,我們使用 成員訪問運算子 成員訪問運算子是結構變數名稱和我們要訪問的結構成員之間的乙個句號。void getstruct book void get...