本詞條缺少概述圖,補(bǔ)充相關(guān)內(nèi)容使詞條更完整,還能快速升級(jí),趕緊來編輯吧!
我們把一些不同類型的數(shù)據(jù)組合成一個(gè)整體,如一個(gè)學(xué)生的學(xué)號(hào)、姓名、班級(jí)、年齡和成績(jī)等,雖然各個(gè)屬性分別屬于不同的數(shù)據(jù)類型,但是它們之間密切相關(guān),各種信息都屬于同一個(gè)人。這時(shí),可以聲明一個(gè)結(jié)構(gòu)型的數(shù)據(jù)類型,由多種數(shù)據(jù)類型,可以是基本數(shù)據(jù)類型,也可以是自定義的數(shù)據(jù)類型,組成一個(gè)集合。
- 中文名
- 結(jié)構(gòu)類型
- 外文名
- structure type
結(jié)構(gòu)類型簡(jiǎn)介
編輯我們把一些不同類型的數(shù)據(jù)組合成一個(gè)整體,如一個(gè)學(xué)生的學(xué)號(hào)、姓名、班級(jí)、年齡和成績(jī)等,雖然各個(gè)屬性分別屬于不同的數(shù)據(jù)類型,但是它們之間密切相關(guān),各種信息都屬于同一個(gè)人。這時(shí),可以聲明一個(gè)結(jié)構(gòu)型的數(shù)據(jù)類型,由多種數(shù)據(jù)類型,可以是基本數(shù)據(jù)類型,也可以是自定義的數(shù)據(jù)類型,組成一個(gè)集合。
結(jié)構(gòu)類型定義
編輯struct 結(jié)構(gòu)類型名
{ 數(shù)據(jù)類型說明符1 成員名1;
數(shù)據(jù)類型說明符2 成員名2;
……
數(shù)據(jù)類型說明符n 成員名n;
};
struct是一個(gè)關(guān)鍵字,表示結(jié)構(gòu)類型定義的開始,結(jié)構(gòu)類型說明符可以是int、float、char等等各數(shù)據(jù)類型?;ɡㄌ?hào)括起來的就是組成結(jié)構(gòu)的各個(gè)組成部分。這里定義的結(jié)構(gòu)類型名就相當(dāng)于int、float等。
定義一個(gè)結(jié)構(gòu)類型變量
結(jié)構(gòu)類型名 變量名;
我們以學(xué)生為例,先定義結(jié)構(gòu)類型:
struct student
{ long num; //代表學(xué)號(hào)
char name[20]; //代表姓名
char sex; //代表性別
int age; //代表年齡
float score; //代表成績(jī)
};
接下來定義一個(gè)student類型的變量:
student s1;
變量定義時(shí)要分配存儲(chǔ)空間,給s1分配的存儲(chǔ)空間是其結(jié)構(gòu)類型中所有成員所占空間的總和。
定義結(jié)構(gòu)體數(shù)組
我們以學(xué)生為例,先定義結(jié)構(gòu)類型:
struct student
{ long num; //代表學(xué)號(hào)
char name[20]; //代表姓名
char sex; //代表性別
int age; //代表年齡
float score; //代表成績(jī)
}; stu[3]
這其中 stu[1]具有num,name,sex,age,score這5個(gè)成員,stu[2]和stu[3]也具有;
數(shù)組各元素在內(nèi)存中連續(xù)存放。
結(jié)構(gòu)類型引用
編輯當(dāng)我們要訪問s1的結(jié)構(gòu)成員時(shí),我們要使用圓點(diǎn)操作符“.”。引用形式為:
結(jié)構(gòu)變量名.成員名
例如,輸出s1的名字:cout<<s1.name;
結(jié)構(gòu)類型初始化
編輯對(duì)s1初始化有兩種方式:
在變量定義同時(shí)初始化:
student s1={40741011,”Li Li”,’F’,19,94};
也可以單獨(dú)的給各個(gè)成員賦值:
s1.num=40741011;
s1.name=”Li Li”
3. 屬于同一結(jié)構(gòu)類型的各個(gè)變量之間可以相互賦值,這和數(shù)組不同。比如:
student s1,s2;
s1=s2 //把s2的各成員值賦給s1
注意相互賦值的必須是同一結(jié)構(gòu)的變量,不同結(jié)構(gòu)的變量不允許相互賦值,即使它們有相同的成員。