在一組資料中往往含有一些不同的資料型別:字元型、整型... ...在這裡我們便會用到結構體。
首先,結構體(struct)有固定的成員(又稱域、專案或元素)構成,是一系列具有相同型別的或不同型別的資料構成的資料集合。結構體可以被宣告為陣列、指標、變數等,用於實現較複雜的資料結構,同時也可以是一些元素的集合。且乙個結構變數在記憶體占有一片連續的儲存空間,由於個資料成員的型別不同,所以具有特定的定義和訪問形式。
訪問形式:
結構指標->成員
(*結構指標).成員
其定義形式為:
struct 識別符號 //struct之後的識別符號使使用者自定義的型別名
結構體變數表; //括號「」中為結構的成員列表,同時定義多個結構體變數用「 , 」隔開
或
struct 識別符號 //struct之後的識別符號使使用者自定義的型別名
; //括號「」中為結構的成員列表
結構體名 結構體變數表 //也可同時定義多個結構體變數
在定義結構體變數時注意,結構體變數名和結構體名不能相同。在定義結構體時,系統對其不分配實際記憶體。只有定義結構體變數時,系統才為其分配記憶體。
例如:
struct contact
;contact stu1,stu2,*enp;//首先定義型別,然後說明變數
或
struct
stu1,stu2;
或
... ...
struct contact
;int main()
;}//1、注意使用大括號,末尾加分號結束 2、各字段的初始值要與該字段型別匹配 3、各初始值以逗號分開
或
... ...(strcpy用於字串的拷貝,要用)
struct contact
;int main()
注:
定義乙個新型別contact,成員變數為id,name,phone。其定義方式和普通的定義方式相同。
如char name所定義的只是單個字元,故使用char來定義字串時需使用指標或陣列,如char name[10]或char* name。
使用結構體可以使所編寫的程式簡單化,可以是資訊更加緊湊、直觀,在函式中還可以起到封裝的作用,使其可以只根據定義來再次利用。
另外陣列元素型別可以是基本型別,也可以是已經定義的結構型別。當陣列元素型別為結構型別時,稱為結構陣列。其定義和訪問方式遵循陣列和結構的語法規則。
例如:
struct type
;type ary[3];
其中ary[3]中含有三個元素組
ary[0].a ary[0].x
ary[1].a ary[1].x
ary[2].a ary[2].x
C 結構體的定義和基本使用
平常使用中,我們經常需要定義多個變數,變數的型別也可能不同,這就需要我們定義很多的變數,比較繁瑣。比如需要定義場景中兩個遊戲物體的位置 物體一 float gameobjectx 1 float gameobjecty 2 float gameobjectz 3 物體二 float gameobje...
關於結構體的定義和基本使用
結構型別是使用者自定義型別,以關鍵字 struct 標識,由結構型別名 各成員的名稱和型別定義。struct 識別符號 我們怎麼才能實現在c 中輸出這麼乙個資訊塊呢?如果只用陣列,指標,字串,陣列等會不會太複雜了?那我們來試試結構化吧 先上dj,先上dj 來段 include struct cont...
DELPHI結構體的定義和使用
窗體設計如上面結構!如下 unit unit1 inte ce uses windows,messages,sysutils,variants,classes,graphics,controls,forms,dialogs,stdctrls type tform1 class tform edit1...