結構的宣告

2021-06-27 01:31:08 字數 1444 閱讀 2472

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