一、c++ 資料結構
c/c++ 陣列允許定義可儲存相同型別資料項的變數,但是結構是 c++ 中另一種使用者自定義的可用的資料型別,它允許您儲存不同型別的資料項。
結構用於表示一條記錄,假設您想要跟蹤圖書館中書本的動態,您可能需要跟蹤每本書的下列屬性:
1.1 定義結構
為了定義結構,您必須使用 struct 語句。struct 語句定義了乙個包含多個成員的新的資料型別,struct 語句的格式如下:
struct type_name object_names;
type_name 是結構體型別的名稱,member_type1 member_name1 是標準的變數定義,比如 int i; 或者 float f; 或者其他有效的變數定義。在結構定義的末尾,最後乙個分號之前,您可以指定乙個或多個結構變數,這是可選的。下面是宣告乙個結構體型別 books,變數為 book:
struct books
book;
1.2 訪問結構成員
為了訪問結構的成員,我們使用成員訪問運算子(.)。成員訪問運算子是結構變數名稱和我們要訪問的結構成員之間的乙個句號。
下面的例項演示了結構的用法:
#include
#include
using namespace std;
// 宣告乙個結構體型別 books
struct books
;int
main()
例項中定義了結構體類似 books 及其兩個變數 book1 和 book2。當上面的**被編譯和執行時,它會產生下列結果:
第一本書標題 : c++ 教程
第一本書作者 : runoob
第一本書類目 : 程式語言
第一本書 id :
12345
第二本書標題 : css 教程
第二本書作者 : runoob
第二本書類目 : 前端技術
第二本書 id :
12346
1.3 結構作為函式引數
可以把結構作為函式引數,傳參方式與其他型別的變數或指標類似。您可以使用上面例項中的方式來訪問結構變數:
#include
#include
using namespace std;
void
printbook
(struct books book )
;// 宣告乙個結構體型別 books
struct books
;int
main()
void
printbook
(struct books book )
書標題 : c++ 教程
書作者 : runoob
書類目 : 程式語言
書 id :
12345
書標題 : css 教程
書作者 : runoob
書類目 : 前端技術
書 id :
12346
1.4 指向結構的指標
您可以定義指向結構的指標,方式與定義指向其他型別變數的指標相似,如下所示:
struct books *struct_pointer;
struct_pointer =
&book1;
為了使用指向該結構的指標訪問結構的成員,您必須使用 -> 運算子,如下所示:
struct_pointer->title;
讓我們使用結構指標來重寫上面的例項,這將有助於您理解結構指標的概念:
#include
#include
using namespace std;
void
printbook
(struct books *book )
;struct books
;int
main()
// 該函式以結構指標作為引數
void
printbook
(struct books *book )
當上面的**被編譯和執行時,它會產生下列結果:
書標題 : c++ 教程
書作者 : runoob
書類目 : 程式語言
書 id :
12345
書標題 : css 教程
書作者 : runoob
書類目 : 前端技術
書 id :
12346
1.6 typedef 關鍵字
下面是一種更簡單的定義結構的方式,您可以為建立的型別取乙個"別名"。例如:
typedef
struct books
books;
現在,您可以直接使用 books 來定義 books 型別的變數,而不需要使用 struct 關鍵字。下面是例項:
books book1, book2;
您可以使用 typedef 關鍵字來定義非結構型別,如下所示:
typedef
long
int*pint32;
pint32 x, y, z;
x, y 和 z 都是指向長整型 long int 的指標。 C 資料結構
c 中實現通用資料結構 在程式設計當中經常會出現使用同種資料結構的不同例項的情況。例如 在乙個 程式中可以使用多個佇列 樹 圖等結構來組織資料。同種結構的不同例項,也 許只在資料元素的型別或數量上略有差異,如果對每個例項都重新定義,則非常麻 煩且容易出錯。那麼能否對同種型別資料結構僅定義一次呢?答案...
資料結構 C
本文將根據自己對資料結構的理解,介紹資料結構的基本型別 鍊錶。寫的不好的地方歡迎指正。首先是單鏈表。結點資料結構定義 struct node return false 3 刪除元素 bool delete node first,int x 現在介紹雙鏈表 首先也是結點結構定義 struct node...
C 資料結構
c c 陣列允許定義可儲存相同型別資料項的變數,但是結構是 c 中另一種使用者自定義的可用的資料型別,它允許您儲存不同型別的資料項。結構用於表示一條記錄,假設您想要跟蹤圖書館中書本的動態,您可能需要跟蹤每本書的下列屬性 為了定義結構,您必須使用struct語句。struct 語句定義了乙個包含多個成...