(1)結構體宣告
struct 結構體名稱//struct說明這是乙個結構體的宣告
;//例如:
struct book
;
(2)定義結構體型別變數
struct 結構體名稱 結構體變數名
(3)初始化結構體變數
struct book book=
;
(4)初始結構體的指定成員值
其語法與陣列指定初始化元素類似,不過結構體指定初始化成員使用點號(.)運算子和成員名。
比如只初始化book的price成員:
strut book book = ;
也可以不按結構體宣告的成員順序進行初始化:
struct book book=
;
(5)結構體巢狀#include
struct date
;struct book
;book=
,"zddddd"};
intmain
(void
)
(1)定義結構體陣列的第一種方法struct 結構體名稱
陣列名[長度];
(2)定義結構體陣列的第二種方法
先宣告乙個結構體型別(比如上面的book),再用此型別定義乙個結構體陣列。
struct 結構體名稱
;struct 結構體名稱 陣列名[長度];
(3)初始化結構體陣列struct book book[3]
=,,};
(1)通過結構體指標訪問結構體成員的第一種方法
(結構體指標).成員名//.運算子的優先順序比 * 高
(2)通過結構體指標訪問結構體成員的第二種方法
結構體指標->成員名
#include
struct date
;struct book
;book=
,"zddddd"};
intmain
(void
)
鍊錶包含兩個域,乙個是資訊域,另乙個是指標域。資訊域用於存放節點內容,指標域是用於指向下乙個節點。鍊錶是通過指標串還需要乙個頭指標,指向第乙個節點。連到一起的。當最後乙個指標指向null時,鍊錶結束。
#include
struct book
;int
main
(void
)
(1)頭插法#include
#include
struct book
;void
getinput
(struct book *book)
void
addbook
(struct book *
*library)
getinput
(book);if
(*library!=
null
)else
}void
printlibrary
(struct
*library)
}void
releaselibrary
(struct book *library)
}int
main
(void
)
(2)尾插法#include
#include
struct book
;void
getinput
(struct book *book)
void
addbook
(struct book *
*library)
getinput
(book);if
(*library!=
null
) temp->next=book;
//插入資料
book->next=
null;}
else
}void
printlibrary
(struct
*library)
}void
releaselibrary
(struct book *library)
}int
main
(void
)
(3)再定義乙個指標指向尾部的尾插法#include
#include
struct book
;void
getinput
(struct book *book)
void
addbook
(struct book *
*library)
getinput
(book);if
(*library!=
null
)else
}tail=book;
void
printlibrary
(struct
*library)
}void
releaselibrary
(struct book *library)
}int
main
(void
)
可對單鏈表進行搜尋操作,比如輸入書名或作者,就可找對相關的節點資料。
#include
#include
struct book
;void
getinput
(struct book *book)
;void
addbook
(struct book *library)
;void
printflibrary
(struct book *library)
;struct book *
searchbook
(struct book *library,
char
*target)
;void
printfbook
(struct book *book)
;void
releaselibrary
(struct book *
*bilrary)
;void
getinput
(struct book *book)
void
addbook
(struct book *
*library)
getinput
(book);if
(*library!=
null
)else
}tail=book;
void
printlibrary
(struct
*library)
}struct book *
searchbook
(stuct book *library,
char
*target)
book=book->next;
}return book;
}void
printfbook
(struct book *book)
void
releaselibrary
(struct book *library)
}int
main
(void
)while
(ch!=
'y'&&ch!=
'n');if
(ch==
'y')
else
}printf
("請問是否需要列印圖書資訊(y\n)")do
while
(ch!=
'y'&&ch!=
'n');if
(ch==
'y')
printf()
;scanf
("%s"
,input)
;
book=
searchbook
(library,input)
;else
while
((book=
searchbook
(book->next,input))!=
null);
}releaselibrary
(&library)
;addbook
(&library)
;return0;
}
C語言 鍊錶 結構體
目的 1.編寫手機 薄管理程式,用結構體實現下列功能 1 手機 薄含有姓名 宅電 手機3項內容,建立含有上述資訊的 簿。2 輸入姓名,查詢此人的號碼。3 插入某人的號碼。4 輸入姓名,刪除某人的號碼。5 將以上功能分別用子函式實現,編寫主函式,可以根據使用者的需要,呼叫相應的子函式。建議用結構體和鍊...
可惡的C語言 列舉與結構
一種使用者定義的資料型別,用enum來宣告 enum 列舉型別名字 列舉型別名字通常並不常用,使用的是在大括號裡的名字,因為它們就是常量符號,它們的型別是int,值依次從0到n。如 enum colors 這樣子就可建立了三個常量,red的值是0,yellow的值是1,green是2。列舉的意義就是...
C語言結構體和C語言鍊錶
前言 對於c語言指標方面,因為博主目前還不能夠達到自己想要的水平,所以我就不在這裡班門弄斧了,現在總結一下結構體,等再過段時間,我把指標弄的爐火純青的成都的時候,我在來獻醜吧 0v0 三 結構體型別變數的賦值於初始化 四 結構體型別陣列的定義於引用 我們之前學過一些構造型別,陣列就是其中之一,但是陣...