1是結構型別的宣告
struct結構型別名
成員表成員表由若干個成員組成,每個成員都是該結構的乙個組成部分;
對每個成員也必須做型別說明,其形式如下:型別說明符 成員名(成員名的命名要符合標示符的書寫規定) 例如
struct studenttype
;
結構名為studenttype,此結構由4個成員組成,第乙個成員為num,整形變數,第2個成員為name,字元指標,第3個成員為***,字元指標;第4個成員為score,實型變數
型別結構studenttype的示意圖num name *** score,
注意:括號後的分號是不可缺少的
結構宣告後即可進行變數定義,凡定義為結構studenttype的變數都由上述4個成員組成,結構是一種構造的資料型別,是數目固定,型別不同的若干有序變數的集合;
2結構型別變數的定義
宣告了結構型別,要在程式中使用結構型別,還應當定義結構型別的變數,可採用如下3種方法定義結構型別變數
(1)先宣告結構型別,再定義結構型別變數
struct
成員表struct結構型別名 結構變數表;
上面結構變數表中不同結構變數之間用逗號隔開
struct studenttype
; struct studenttype boy,girl;
上面定義了2個型別為studenttype的結構型別變數boy和girl
2在宣告結構型別的同時定義結構型別變數
struct結構型別名
成員名}結構型別表;
struct studenttype
boy,girl;
3直接定義結構型別變數,這種定義乙個結構變數的一般形式如下:
struct
boy,girl;
第3種方法省略了結構型別名,而是直接給出結構型別變數名,而是直接給出結構型別變數;
3種方法中說明的boy,girl變數都具有之前的結構
定義了boy,girl變數未studenttype型別後,就可以向這2個變數中的各個成員賦值。在上面studenttype結構型別宣告中所有成員都是基本資料型別或者陣列型別;成員也可以使又是乙個結構,即構成了巢狀的結構型別
struct datetype
;struct studenttype
boy,girl;
首先宣告乙個結構型別datetype,有年,月,日這3個成員組成,在定義結構型別變數boy和girl時,其中的成員birthday被說明為datetype結構型別,成員名可與程式中的其他變數同名
在asci c中除了允許相同型別的結構變數相互賦值以外,一般對結構變數的使用,包括賦值,輸入,輸出和運算都是通過結構變數的成員來是實現的
結構體的優化宣告
宣告乙個結構體的時候,因為考慮到記憶體的對齊。例如,int型的變數,需要4個位元組,那麼它在儲存的時候就需要在位址能夠被4個位元組整除的地方開始申請。例如我們申請下面這樣的乙個結構體 struct node1 在記憶體分配的時候,char佔乙個位元組,int 佔四個位元組。c語言在進行記憶體分配的時...
結構體的優化宣告
宣告乙個結構體的時候,因為考慮到記憶體的對齊。例如,int型的變數,需要4個位元組,那麼它在儲存的時候就需要在位址能夠被4個位元組整除的地方開始申請。例如我們申請下面這樣的乙個結構體 struct node1 在記憶體分配的時候,char佔乙個位元組,int 佔四個位元組。c語言在進行記憶體分配的時...
三 結構及其宣告
說明 type 定義型別 data 建立物件 參照結構體生成結構體,只能用like不能用type 但參照sap標準的結構體生成結構,可以用type 語法types begin of structure1,k1 type 資料型別 k2 type 資料型別 end of structure1.data...