結構類型

我們把一些不同類型的數據組合成一個整體,如一個學生的學號、姓名、班級、年齡和成績等,雖然各個屬性分別屬於不同的數據類型,但是它們之間密切相關,各種信息都屬於同一個人。這時,可以聲明一個結構型的數據類型,由多種數據類型,可以是基本數據類型,也可以是自定義的數據類型,組成一個集合。

簡介

我們把一些不同類型的數據組合成一個整體,如一個學生的學號、姓名、班級、年齡和成績等,雖然各個屬性分別屬於不同的數據類型,但是它們之間密切相關,各種信息都屬於同一個人。這時,可以聲明一個結構型的數據類型,由多種數據類型,可以是基本數據類型,也可以是自定義的數據類型,組成一個集合。

定義

struct 結構類型名

{ 數據類型說明符1 成員名1;

數據類型說明符2 成員名2;

……

數據類型說明符n 成員名n;

};

struct是一個關鍵字,表示結構類型定義的開始,結構類型說明符可以是int、float、char等等各數據類型。花括弧括起來的就是組成結構的各個組成部分。這裡定義的結構類型名就相當於int、float等。

定義一個結構類型變數

結構類型名 變數名;

我們以學生為例,先定義結構類型:

struct student

{ long num; //代表學號

char name[20]; //代表姓名

char sex; //代表性別

int age; //代表年齡

float score; //代表成績

};

接下來定義一個student類型的變數:

student s1;

變數定義時要分配存儲空間,給s1分配的存儲空間是其結構類型中所有成員所占空間的總和。

定義結構體數組

我們以學生為例,先定義結構類型:

struct student

{ long num; //代表學號

char name[20]; //代表姓名

char sex; //代表性別

int age; //代表年齡

float score; //代表成績

}; stu[3]

這其中 stu[1]具有num,name,sex,age,score這5個成員,stu[2]和stu[3]也具有;

數組各元素在記憶體中連續存放。

引用

當我們要訪問s1的結構成員時,我們要使用圓點操作符“.”。引用形式為:

結構變數名.成員名

例如,輸出s1的名字:cout<<s1.name;

初始化

對s1初始化有兩種方式:

在變數定義同時初始化:

student s1={40741011,”Li Li”,’F’,19,94};

也可以單獨的給各個成員賦值:

s1.num=40741011;

s1.name=”Li Li”

3. 屬於同一結構類型的各個變數之間可以相互賦值,這和數組不同。比如:

student s1,s2;

s1=s2 //把s2的各成員值賦給s1

注意相互賦值的必須是同一結構的變數,不同結構的變數不允許相互賦值,即使它們有相同的成員。

相關搜尋

熱門詞條

聯絡我們