struct 語句定義了乙個包含多個成員的新的資料型別,格式如下:
struct type_name object_names;
type_name 是結構體型別的名稱,member_type1 member_name1 是標準的變數定義,比如 int i。
在結構定義的末尾,最後乙個分號之前,您可以指定乙個或多個結構變數。
#include
#include
using namespace std;
// 宣告乙個結構體型別 books
struct books
;int
main()
可以把結構作為函式引數,傳參方式與其他型別的變數或指標類似。
#include
#include
using namespace std;
void
printbook
(struct books book )
;// 宣告乙個結構體型別 books
struct books
;int
main()
void
printbook
(struct books book )
可以定義指向結構的指標,方式與定義指向其他型別變數的指標相似。
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 )
.(點)運算子和 ->(箭頭)運算子用於引用類、結構和共用體的成員:
點運算子應用於實際的物件。
箭頭運算子與乙個指向物件的指標一起使用。
例如,假設有下面的結構:
struct employee emp;
. 點運算子
把值 zara 賦給物件 emp 的 first_name 成員:
strcpy(emp.first_name, "zara");
-> 箭頭運算子
如果 p_emp 是乙個指標,指向型別為 employee 的物件,把值 zara 賦給物件 emp 的 first_name 成員:
strcpy(p_emp->first_name, "zara");
簡而言之,訪問結構的成員時使用點運算子,而通過指標訪問結構的成員時,則使用箭頭運算子。
typedef是一種更簡單的定義結構的方式,可以為建立的型別取乙個"別名"。
typedef
struct books
books;
可以直接使用 books 來定義 books 型別的變數:
books book1, book2;
可以使用 typedef 關鍵字來定義非結構型別,如下所示:
typedef long int *pint32;
pint32 x, y, z;
x, y 和 z 都是指向長整型 long int 的指標。
(1)class 中預設的成員訪問許可權是 private 的,而 struct 中則是 public 的。
(2)從 class 繼承預設是 private 繼承,而從 struct 繼承預設是 public 繼承。
(3)class 可以定義模板,而 struct 不可以。
C語言結構體struct筆記
1 結構體 用來存放一組不同型別的資料,在結構體內定義。2 結構體定義形式 struct 結構體名 3 例項 學生結構體 struct student 注 student是結構體名字,包含一系列成員變數,不能初始化。最後的大括號外的 不能省略 4 結構體是一種資料型別,因此可以和int等資料型別用相...
C 學習筆記 結構體 關鍵字 struct
結構體是乙個由程式設計師定義的資料型別,可以容納許多不同的資料值。在過去,物件導向程式設計的應用尚未普及之前,程式設計師通常使用這些從邏輯上連線在一起的資料組合到乙個單元中。一旦結構體型別被宣告並且其資料成員被標識,即可建立該型別的多個變數,就像可以為同乙個類建立多個物件一樣。一 宣告結構體 宣告結...
第6章 結構體(struct)
go語言通過用自定義的方式形成新的型別,結構體是型別中帶有成員的符合型別。go語言使用結構體和結構體成員來描述真實世界的實體和實體對應的各種屬性。go語言中的型別可以被是理化,使用new或 構造的型別實力的型別是型別的指標。結構體成員是由一系列的成員變數構成,這些成員變數也被稱為 字段 欄位有以下特...