C 結構詳解

2021-08-04 21:21:57 字數 1214 閱讀 9883

什麼是結構?哪些情況下需要使用結構?結構的語法要點?

在c++中,結構(structure)與類幾乎是完全一樣的型別,(結構是一種資料型別)差別僅僅在於預設情況下結構的成員為公有的。

在c語言階段,結構就已存在,但它只有公有的資料成員。正因為如此,c++程式設計師仍然使用結構,但是只為結構安排公有的資料成員。當只使用資料成員,而且這些資料成員的型別往往互不相同時,總是採用結構型別,而不採用類。因為這樣程式更易讀易懂。

定義結構型別的格式如下:

struct 結構型別名

;//最後的分號不可少

例如,下面給出的庫存貨物(inventory、員工(employee)兩個結構型別:

struct inventory

;◆ 1、結構是一種派生資料型別,定義結構時並不分配儲存空間,只有定義了結構型別的變數,編譯系統才為結構變數分配儲存空間。

定義變數方法如下:設有兩個雇員———man1和man2,如此定義: employee man1 , man2 ;

◆ 2、對結構變數可以在定義時初始化。方法是:

在花括號中順序填入結構中的(資料)成員的初始值:

employee emp1=,

emp2=;

◆ 3、 結構變數的訪問與類的物件一樣,可使用成員訪問操作符之一的「點操作符」,對成員乙個個進行:

變數名 . 成員名

◆ 4、與同類的物件之間可以拷貝一樣,同結構型別的變數之間也可以作為整體相互賦值(拷貝)(因為結構的組成與大小是固定的,這一點與陣列不同)。

在c++中,賦值運算子「=」理解為隱式拷貝賦值操作符(copy assignment operator)。如按前面的定義,emp1=emp2是合法的,這時emp2中的內容成為emp1的拷貝。但同型別變數不能比較大小。

◆ 5、結構變數也可以作為函式的引數和返回值,結構作為引數也是按值(複製)進行傳遞的,當然也可以按引用傳遞。

在程式檔案中強烈推薦將結構型別的定義放在所有函式的外面,這樣程式檔案中的各個函式可以按需要在各個函式中宣告區域性的結構變數。因為,在各函式中定義結構型別,即使兩個函式中定義的完全一樣,系統也完全認為是兩種結構型別。

struct employee

;結構成員必須是已定義過的結構,結構成員決不能是結構自身(這會引起無窮遞迴)。

訪問結構變數的結構成員的方法:用連續點號來訪問結構變數的結構成員。例如有程式段:

employee emp1=;

cout《輸出為:

83792666。

C 結構(structure)詳解

什麼是結構?哪些情況下需要使用結構?結構的語法要點?在c 中,結構 structure 與類幾乎是完全一樣的型別,結構是一種資料型別 差別僅僅在於預設情況下結構的成員為公有的。在c語言階段,結構就已存在,但它只有公有的資料成員。正因為如此,c 程式設計師仍然使用結構,但是只為結構安排公有的資料成員。...

C 結構體 struct 詳解

陣列 array 它是一組具有相同型別的資料的集合。但在實際的程式設計過程中,我們往往還需要一組型別不同的資料,例如對於學生資訊登記表,姓名為字串,學號為整數,年齡為整數,所在的學習小組為字元,成績為小數,因為資料型別不同,顯然不能用乙個陣列來存放。在c語言中,可以使用 結構體 struct 來存放...

C 選擇分支結構詳解

1 if 表示式 語句。例如 if x y cout 2 if 表示式 語句1 else 語句2 例如 if x y cout 圖 3.5 3 if 表示式1 語句1 else if 表示式2 語句2 else if 表示式3 語句3 else if 表示式m 語句m else 語句n 例如 複製純...