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...