C語言C加加 數據結構
C/C++ 數組允許定義可存儲相同類型數據項的變數,但是結構是 C++ 中另一種用戶自定義的可用的數據類型,它允許您存儲不同類型的數據項。
結構用於表示一條記錄,假設您想要跟蹤圖書館中書本的動態,您可能需要跟蹤每本書的下列屬性:
Title :標題
Author :作者
Subject :類目
Book ID :書的 ID
定義結構
為了定義結構,您必須使用struct語句。struct 語句定義了一個包含多個成員的新的數據類型,struct 語句的格式如下:
struct type_name object_names;
type_name是結構體類型的名稱,member_type1 member_name1是標準的變數定義,比如int i;或者float f;或者其他有效的變數定義。在結構定義的末尾,最後一個分號之前,您可以指定一個或多個結構變數,這是可選的。下面是聲明一個結構體類型Books,變數為book:
struct Books{ char title[50]; char author[50]; char subject[100]; int book_id;} book;
訪問結構成員
為了訪問結構的成員,我們使用成員訪問運算符(.)。成員訪問運算符是結構變數名稱和我們要訪問的結構成員之間的一個句號。
下面的實例演示了結構的用法:
實例
實例中定義了結構體類似 Books 及其兩個變數 Book1 和 Book2。當上面的代碼被編譯和執行時,它會產生下列結果:
結構作為函數參數
您可以把結構作為函數參數,傳參方式與其他類型的變數或指針類似。您可以使用上面實例中的方式來訪問結構變數:
實例
當上面的代碼被編譯和執行時,它會產生下列結果:
指向結構的指針
您可以定義指向結構的指針,方式與定義指向其他類型變數的指針相似,如下所示:
struct Books *struct_pointer;
現在,您可以在上述定義的指針變數中存儲結構變數的地址。為了查找結構變數的地址,請把 & 運算符放在結構名稱的前面,如下所示:
struct_pointer = &Book1;
為了使用指向該結構的指針訪問結構的成員,您必須使用 -> 運算符,如下所示:
struct_pointer->title;
讓我們使用結構指針來重寫上面的實例,這將有助於您理解結構指針的概念:
實例
當上面的代碼被編譯和執行時,它會產生下列結果:
typedef 關鍵字
下面是一種更簡單的定義結構的方式,您可以為創建的類型取一個"別名"。例如:
typedef struct{ char title[50]; char author[50]; char subject[100]; int book_id;}Books;
現在,您可以直接使用 Books 來定義 Books 類型的變數,而不需要使用 struct 關鍵字。下面是實例:
Books Book1, Book2;
您可以使用typedef關鍵字來定義非結構類型,如下所示:
typedef long int *pint32; pint32 x, y, z;
x, y 和 z 都是指向長整型 long int 的指針。
※C語言C加加 修飾符類型
※下面的C語言代碼可能會產生無限循環看半天才意識到Bug在哪裡
TAG:C加加 |
※GPU 加速數據科學計算
※在線新聞評論分析數據集——SOCC
※XSD 數值數據類型
※設計師札記:關於HRMS系統中薪資數據加密問題的討論
※基於SSL實現數據傳輸加密協議—HTTPS
※PowerBI從SCCM資料庫中分析數據和KPI展現
※取證大師APFS加密數據解析功能重磅上線!
※BBSSDK數據同步存儲原理
※iOS 11.4最新測試版推送:加入USB限制 數據更加保密
※蘋果、IBM高管呼籲加強數據監管
※微軟公司給EXCEL加入AI數據類型 便於股票和地理信息提取
※Python程序設計之數據加密演算法MD5
※最新調查:Python 成數據分析、數據科學與機器學習的第一大語言
※VBA之數據類型和常量與變數
※使用inferCNV來推斷CCLE轉錄組數據的拷貝數變異
※OCR技術之數據篇
※文件數據IO操作
※RocksDB數據存儲格式分析
※FB舉行濫用數據內部討論會 CEO與COO雙雙缺席
※李軍:學會數據分析賦能HRBP