版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第九章結(jié)構(gòu)體學(xué)習(xí)目標(biāo)理解結(jié)構(gòu)體的概念掌握結(jié)構(gòu)體類型和結(jié)構(gòu)體變量的差別掌握引用結(jié)構(gòu)體成員運(yùn)算符“.”和“->”掌握結(jié)構(gòu)體數(shù)組、結(jié)構(gòu)體指針23
處理一個(gè)學(xué)生的信息,包括:
學(xué)號(hào)、姓名、性別、年齡、成績(jī)、地址 按照以往定義變量的方式,我們可以這樣定義: intnum; charname[20]; charsex; intage; floatscore; charaddr[50];這些變量相互獨(dú)立,很難反映出它們的內(nèi)在聯(lián)系struct
student{
};結(jié)構(gòu)體(構(gòu)造類型)問題提出9.1結(jié)構(gòu)體結(jié)構(gòu)體是一種構(gòu)造數(shù)據(jù)類型用途:把不同類型的數(shù)據(jù)組合成一個(gè)整體——
自定義數(shù)據(jù)類型結(jié)構(gòu)體類型定義struct[結(jié)構(gòu)體名]{
類型標(biāo)識(shí)符成員名;類型標(biāo)識(shí)符成員名;
……};成員類型可以是基本型或構(gòu)造型struct是關(guān)鍵字,不能省略合法標(biāo)識(shí)符可省:無名結(jié)構(gòu)體學(xué)生信息學(xué)號(hào):intnum;姓名:charname[20];性別:charsex;年齡:intage;成績(jī):floatscore;地址:charaddr[30];例structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];};結(jié)構(gòu)體類型定義描述結(jié)構(gòu)的組織形式,不分配內(nèi)存結(jié)構(gòu)體變量的定義先定義結(jié)構(gòu)體類型,再定義結(jié)構(gòu)體變量一般形式:struct
結(jié)構(gòu)體名{
類型標(biāo)識(shí)符成員名;類型標(biāo)識(shí)符成員名;
……};struct結(jié)構(gòu)體名變量名表列;structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];};structstudentstu1,stu2;namenumsexagescoreaddr4字節(jié)4字節(jié)20字節(jié)1字節(jié)4字節(jié)30字節(jié)………
一般形式:struct
結(jié)構(gòu)體名{
類型標(biāo)識(shí)符成員名;類型標(biāo)識(shí)符成員名;
……}變量名表列;例
structstudent{intnum;charname[20];charsex;int
age;floatscore;char
addr[30];}stu1,stu2;定義結(jié)構(gòu)體類型的同時(shí)定義結(jié)構(gòu)體變量struct{
類型標(biāo)識(shí)符成員名;類型標(biāo)識(shí)符成員名;
…………….}變量名表列;例
struct{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}stu1,stu2;用無名結(jié)構(gòu)體直接定義變量只能一次一般形式:直接定義結(jié)構(gòu)體變量
說明結(jié)構(gòu)體類型與結(jié)構(gòu)體變量概念不同類型:不分配內(nèi)存;變量:分配內(nèi)存類型:不能賦值、存取、運(yùn)算;變量:可以結(jié)構(gòu)體可嵌套結(jié)構(gòu)體變量的初始化形式一:struct
結(jié)構(gòu)體名{
類型標(biāo)識(shí)符成員名;類型標(biāo)識(shí)符成員名;
…………….};struct結(jié)構(gòu)體名結(jié)構(gòu)體變量={初始數(shù)據(jù)};
structstudent
{
int
num;
charname[20];
char
sex;
int
age;
char
addr[30];
};
structstudentstu1={112,“WangLin”,‘M’,19,“20BeijingRoad”};例struct
結(jié)構(gòu)體名{
類型標(biāo)識(shí)符成員名;類型標(biāo)識(shí)符成員名;
…………….}結(jié)構(gòu)體變量={初始數(shù)據(jù)};structstudent{intnum;charname[20];charsex;intage;charaddr[30];}stu1={112,“WangLin”,‘M’,19,“200BeijingRoad”};例形式二:struct{
類型標(biāo)識(shí)符成員名;類型標(biāo)識(shí)符成員名;
…………….}結(jié)構(gòu)體變量={初始數(shù)據(jù)};例struct{intnum;charname[20];charsex;intage;charaddr[30];}stu1={112,“WangLin”,‘M’,19,“200BeijingRoad”};形式三:結(jié)構(gòu)體可嵌套例
structdate{intmonth;intday;intyear;};structstudent{intnum;charname[20];
structdatebirthday;}stu;numnamebirthdaymonthdayyear結(jié)構(gòu)體成員名與程序中變量名可相同,不會(huì)混淆例
structstudent{intnum;charname[20];
structdate{intmonth;intday;intyear;}birthday;}stu;numnamebirthdaymonthdayyear例main()
{structstudent{intnum;charname[20];}stu;
intnum;num=0;
stu.num=1;……}結(jié)構(gòu)體變量的引用引用規(guī)則結(jié)構(gòu)體變量不能整體引用,只能引用變量成員引用方式:結(jié)構(gòu)體變量名.成員名可以將一個(gè)結(jié)構(gòu)體變量賦值給另一個(gè)結(jié)構(gòu)體變量結(jié)構(gòu)體嵌套時(shí)逐級(jí)引用例
structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}stu1,stu2;stu1={101,“WanLin”,‘M’,19,87.5,“DaLian”};printf(“%d,%s,%c,%d,%f,%s\n”,stu1);錯(cuò)
例
structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}stu1,stu2;stu1.num=10;stu1.score=85.5;stu1.score+=stu2.score;stu1.age++;例
structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}
stu1,
stu2;stu2=stu1;例
structstudent{intnum;charname[20];structdate{intmonth;intday;intyear;}birthday;}stu1,stu2;stu1.birthday.month=12;結(jié)構(gòu)體數(shù)組結(jié)構(gòu)體數(shù)組的定義三種形式:形式一:
structstudent{intnum;charname[20];charsex;intage;};structstudentstu[2];形式二:structstudent{intnum;charname[20];charsex;intage;}stu[2];形式三:struct{intnum;charname[20];charsex;intage;}stu[2];numnamesexagenumnamesexagestu[0]stu[1]25B結(jié)構(gòu)體數(shù)組初始化
順序初始化分行初始化
結(jié)構(gòu)體數(shù)組引用引用方式:結(jié)構(gòu)體數(shù)組名[下標(biāo)].成員名順序初始化:structstudent{intnum;charname[20];charsex;intage;};structstudentstu[3]={100,“WangLin”,‘M’,20,101,“LiGang”,‘M’,19,110,“LiuYan”,‘F’,19};分行初始化:structstudent{intnum;charname[20];charsex;intage;};structstudentstu[]={{100,“WangLin”,‘M’,20},{101,“LiGang”,‘M’,19},{110,“LiuYan”,‘F’,19}};全部初始化時(shí)維數(shù)可省structstudent{intnum;charname[20];charsex;intage;}stu[3];stu[1].age++;strcpy(stu[0].name,”ZhaoDa”);重要!structperson{charname[20];intcount;}leader[3]={“Li”,0,“Zhang”,0,”Wang“,0};main(){inti,j;charleader_name[20];
for(i=0;i<10;i++){scanf("%s",leader_name);
for(j=0;j<3;j++)if(strcmp(leader_name,leader[j].name)==0) leader[j].count++;}for(i=0;i<3;i++)printf("%s:%d\n",leader[i].name,leader[i].count);}namecountLiZhangWang000例:統(tǒng)計(jì)候選人的選票Li
Zhang
Wang
Li
Wang
Li
Li
Zhang
Li
Wang
Li:5Zhang:2Wang:3結(jié)構(gòu)體和指針指向結(jié)構(gòu)體變量的指針定義形式:struct結(jié)構(gòu)體名*結(jié)構(gòu)體指針名;使用結(jié)構(gòu)體指針變量引用成員形式存放結(jié)構(gòu)體變量在內(nèi)存的起始地址(*結(jié)構(gòu)體指針名).成員名
結(jié)構(gòu)體指針名->成員名
結(jié)構(gòu)體變量名.成員名指向運(yùn)算符優(yōu)先級(jí):1結(jié)合方向:從左向右structstudentstu1;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年股東股權(quán)轉(zhuǎn)讓合同書(含保密協(xié)議)
- 2024廣告創(chuàng)意設(shè)計(jì)及實(shí)施合同樣本版B版
- 2024年離異夫婦對(duì)大學(xué)生子女撫養(yǎng)安排
- 2024年股權(quán)贈(zèng)與協(xié)議模板3篇
- 2024年跨國貨物買賣履行合同
- 2025年度防雨棚施工安全監(jiān)督及驗(yàn)收合同2篇
- 物理專業(yè)英語詞匯-Q
- 三年級(jí)上冊(cè)信息技術(shù)教學(xué)計(jì)劃4篇
- 2025年度果樹租賃與果樹品種研發(fā)合作協(xié)議3篇
- 圖形的相似教學(xué)反思7篇
- GB 18399-2001棉花加工機(jī)械安全要求
- 復(fù)旦大學(xué)留學(xué)生(本科)漢語入學(xué)考試大綱
- 送達(dá)地址確認(rèn)書(完整版)
- 試講 關(guān)注合理營養(yǎng)與食品安全課件
- 2022年同等學(xué)力人員申請(qǐng)碩士學(xué)位日語水平統(tǒng)一考試真題
- 長(zhǎng)距離輸氣管線工藝設(shè)計(jì)方案
- 北師大版小學(xué)五年級(jí)上冊(cè)數(shù)學(xué)第六單元《組合圖形的面積》單元測(cè)評(píng)培優(yōu)試卷
- 用特征方程求數(shù)列的通項(xiàng)
- 甲醇濃度密度對(duì)照表0~40
- 四年級(jí)奧數(shù)題(一)找規(guī)律
- 會(huì)計(jì)學(xué)原理課后習(xí)題與答案
評(píng)論
0/150
提交評(píng)論