(C 筆記) 10結構體

2021-10-07 02:23:16 字數 1775 閱讀 2168

c/c++ 陣列允許定義可儲存相同型別資料項的變數,但是結構是 c++ 中另一種使用者自定義的可用的資料型別,它允許您儲存不同型別的資料項。

結構用於表示一條記錄,假設您想要跟蹤圖書館中書本的動態,您可能需要跟蹤每本書的下列屬性:

為了定義結構,您必須使用struct語句。struct 語句定義了乙個包含多個成員的新的資料型別,struct 語句的格式如下:

struct type_name  object_names;
type_name是結構體型別的名稱,member_type1 member_name1是標準的變數定義,比如int i;或者float f;或者其他有效的變數定義。

在結構定義的末尾,最後乙個分號之前,您可以指定乙個或多個結構變數,這是可選的。

結構體 =  型別  +     +  變數

下面是宣告乙個結構體型別books,變數為book

struct books

book;

為了訪問結構的成員,我們使用成員訪問運算子(.)

結構變數名稱.成員名稱

#include #include using namespace std;

// 宣告乙個結構體型別 books

struct books;

int main( );

int main( )

; = ch;

//我這樣寫出錯:[錯誤]陣列分配無效,發現乙個陣列不能直接將字元賦值給另乙個陣列

/*得這樣乙個乙個字元賦值,還是使用內建函式stycpy()方便~

char ch[50] = ;

for(int i = 0; i<5; i++)

*/strcpy( book1.title, "c++ 教程");

strcpy( book1.author, "runoob");

strcpy( book1.subject, "程式語言");

book1.book_id = 12345;

// book2 詳述

strcpy( book2.title, "css 教程");

strcpy( book2.author, "runoob");

strcpy( book2.subject, "前端技術");

book2.book_id = 12346;

// 輸出 book1 資訊

printbook( book1 );

cout << "\n";

// 輸出 book2 資訊

printbook( book2 );

return 0;

}void printbook( struct books book );

int main( )

// 該函式以結構指標作為引數

void printbook( struct books *book )

books;

直接使用 books 來定義 books 型別的變數,而不需要使用 struct 關鍵字,如:

void printbook( struct books *book )可以寫成void printbook( books *book )

C 筆記(6) 結構體

結構體是c語言中的一種由基本資料型別構成的 並用乙個識別符號來命名的各種變數的組合。比如定義乙個node的結構體 struct node 這樣就定義了乙個結構體型別,它裡面包含乙個字串和乙個整型變數。用這個結構體來定義變數s1和s2 struct node s1,s2 s1和s2就都是struct ...

C語言筆記 結構體

在習慣複製貼上之後導致現在自己敲程式都成了問題。鏈結構體都不會敲了,於是痛定思痛,寫下這篇筆記,警示後 zi 人 ji 定義 struct 結構體名 一定要有分號,定義本身就是個語句的說例子 struct boo 定義名字是boo的結構體 和定義出一種新的型別差不多 上面這樣就定義出了個結構體,相當...

C學習筆記 結構體

結構體是簡單資料型別的綜合 struct man struct man m struct man m 要訪問結構體成員,要使用.操作符。m.age 結構在記憶體的大小是和結構成員最長的那個元素相關的 編譯器在編譯乙個結構的時候採用記憶體對齊模式 struct man sizeof struct ma...