![第六章結(jié)構(gòu)與枚舉_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/12/d1708cf5-ba1c-417d-bec1-2059f99dc0dc/d1708cf5-ba1c-417d-bec1-2059f99dc0dc1.gif)
![第六章結(jié)構(gòu)與枚舉_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/12/d1708cf5-ba1c-417d-bec1-2059f99dc0dc/d1708cf5-ba1c-417d-bec1-2059f99dc0dc2.gif)
![第六章結(jié)構(gòu)與枚舉_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/12/d1708cf5-ba1c-417d-bec1-2059f99dc0dc/d1708cf5-ba1c-417d-bec1-2059f99dc0dc3.gif)
![第六章結(jié)構(gòu)與枚舉_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/12/d1708cf5-ba1c-417d-bec1-2059f99dc0dc/d1708cf5-ba1c-417d-bec1-2059f99dc0dc4.gif)
![第六章結(jié)構(gòu)與枚舉_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/12/d1708cf5-ba1c-417d-bec1-2059f99dc0dc/d1708cf5-ba1c-417d-bec1-2059f99dc0dc5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、email: c語言交流群:語言交流群:l掌握結(jié)構(gòu)的定義和聲明掌握結(jié)構(gòu)的定義和聲明l掌握結(jié)構(gòu)成員的訪問掌握結(jié)構(gòu)成員的訪問l結(jié)構(gòu)體變量的初始化結(jié)構(gòu)體變量的初始化l掌握結(jié)構(gòu)數(shù)組的定義和使用掌握結(jié)構(gòu)數(shù)組的定義和使用l掌握結(jié)構(gòu)指針的定義和使用掌握結(jié)構(gòu)指針的定義和使用l掌握結(jié)構(gòu)指針訪問成員的方法掌握結(jié)構(gòu)指針訪問成員的方法l掌握類型定義掌握類型定義typedef的使用的使用l理解枚舉的定義和使用理解枚舉的定義和使用數(shù)組是一組同類型數(shù)據(jù)的集合數(shù)組是一組同類型數(shù)據(jù)的集合 例如例如 int a10存放的是存放的是10個(gè)整數(shù),數(shù)組個(gè)整數(shù),數(shù)組a中只能存放中只能存放整數(shù),不能存放浮點(diǎn)數(shù)、長(zhǎng)整形、字符串等整數(shù),不能存
2、放浮點(diǎn)數(shù)、長(zhǎng)整形、字符串等 例如例如 學(xué)生基本信息有學(xué)生基本信息有:學(xué)號(hào)、姓名、性別、出生日期、學(xué)號(hào)、姓名、性別、出生日期、籍貫、家庭住址、政治面貌、系部、專業(yè)、班級(jí)、籍貫、家庭住址、政治面貌、系部、專業(yè)、班級(jí)、課程、成績(jī)等課程、成績(jī)等 這些這些數(shù)據(jù)的類型不同,就不能存放在一個(gè)數(shù)組中,數(shù)據(jù)的類型不同,就不能存放在一個(gè)數(shù)組中,而且相同的數(shù)據(jù)類型也不便于存放在同一數(shù)組中,而且相同的數(shù)據(jù)類型也不便于存放在同一數(shù)組中,比如學(xué)號(hào)、姓名和家庭地址等比如學(xué)號(hào)、姓名和家庭地址等基于以上因素,引入一種新的數(shù)據(jù)結(jié)構(gòu)基于以上因素,引入一種新的數(shù)據(jù)結(jié)構(gòu)結(jié)構(gòu)結(jié)構(gòu)結(jié)構(gòu)是結(jié)構(gòu)是一個(gè)一個(gè)或或多個(gè)變量多個(gè)變量的集合,這些變量的
3、類型的集合,這些變量的類型可能是可能是不同的數(shù)據(jù)類型不同的數(shù)據(jù)類型結(jié)構(gòu)優(yōu)點(diǎn):便于組織和管理復(fù)雜的數(shù)據(jù)結(jié)構(gòu)定義格式結(jié)構(gòu)定義格式struct 結(jié)構(gòu)名結(jié)構(gòu)名 成員表列成員表列;struct studentchar num10;char name8;char sex;char birth10;char addr50;.;結(jié)構(gòu)名成員struct pointint x;int y;結(jié)構(gòu)名成員結(jié)構(gòu)變量的聲明結(jié)構(gòu)變量的聲明(定義定義)三種方法三種方法 (1)先聲明結(jié)構(gòu)體類型再定義變量名先聲明結(jié)構(gòu)體類型再定義變量名例如:例如:struct point pt1, pt2; 定義了pt1和pt2為struct po
4、int類型的變量,即它們具有struct point類型的結(jié)構(gòu).結(jié)構(gòu)類型結(jié)構(gòu)變量10050300600pt1pt2xy結(jié)構(gòu)變量的聲明結(jié)構(gòu)變量的聲明(定義定義)三種方法三種方法 (2)在定義結(jié)構(gòu)類型的同時(shí)定義變量在定義結(jié)構(gòu)類型的同時(shí)定義變量 structstruct結(jié)構(gòu)名結(jié)構(gòu)名 成員列表成員列表 變量名列表;變量名列表; 例如:struct pointint x;int y; pt1, pt2;結(jié)構(gòu)變量的聲明結(jié)構(gòu)變量的聲明(定義定義)三種方法三種方法 (3)直接定義結(jié)構(gòu)變量直接定義結(jié)構(gòu)變量 structstruct 成員表列成員表列 變量名表列;變量名表列;即不出現(xiàn)結(jié)構(gòu)體名。即不出現(xiàn)結(jié)構(gòu)體名。
5、例如:struct int x;int y; pt1, pt2;結(jié)構(gòu)變量成員的訪問結(jié)構(gòu)變量成員的訪問(引用引用)格式:結(jié)構(gòu)變量名結(jié)構(gòu)變量名.成員名成員名例如 struct point pt1, pt2;pt1.x = 100;pt1.y = 50;pt2.x = 300;pt2.y = 600;結(jié)構(gòu)變量成員可以是結(jié)構(gòu)結(jié)構(gòu)變量成員可以是結(jié)構(gòu)struct studentchar num10;char name8;char sex;char birth10;char addr50;struct course major10;stu1, stu2;成員是結(jié)成員是結(jié)構(gòu)變量構(gòu)變量struct course
6、char couname20;float score;結(jié)構(gòu)變量成員的訪問結(jié)構(gòu)變量成員的訪問(引用引用)規(guī)則規(guī)則 (1)不能將一個(gè)結(jié)構(gòu)體變量作為一個(gè)整體進(jìn)行輸入和不能將一個(gè)結(jié)構(gòu)體變量作為一個(gè)整體進(jìn)行輸入和輸出輸出例如 struct point pt1, pt2;pt1.x = 100;pt1.y = 50;pt2.x = 300;pt2.y = 600;printf(“pt1=(%d, %d)n”, pt1);printf(“pt2=(%d, %d)n”, pt2);printf(“pt1=(%d, %d)n”, pt1.x, pt1.y);printf(“pt2=(%d, %d)n”, pt2
7、.x, pt2.y);結(jié)構(gòu)變量成員的訪問結(jié)構(gòu)變量成員的訪問(引用引用)規(guī)則規(guī)則 (2)如果如果成員成員本身又屬一個(gè)本身又屬一個(gè)結(jié)構(gòu)類型結(jié)構(gòu)類型,則要用若干個(gè)成員運(yùn)算符則要用若干個(gè)成員運(yùn)算符,一級(jí)一級(jí)一級(jí)一級(jí)地地找到最低的一級(jí)找到最低的一級(jí)的成員。的成員。只能對(duì)最低級(jí)的成員進(jìn)行賦值或存取以及只能對(duì)最低級(jí)的成員進(jìn)行賦值或存取以及運(yùn)算。運(yùn)算。struct studentchar num10;char name8;char sex;char birth10;char addr50;struct course major10;stu1, stu2;struct coursechar couname20;
8、float score; = “張三”;stu1.major.couname = “程序設(shè)計(jì)基礎(chǔ)(c)”;stu1.major.score = 95;結(jié)構(gòu)變量成員的訪問結(jié)構(gòu)變量成員的訪問(引用引用)規(guī)則規(guī)則 (3)結(jié)構(gòu)成員可以和普通變量一樣運(yùn)算結(jié)構(gòu)成員可以和普通變量一樣運(yùn)算例:struct point pt1, pt2;pt1.x = 100;pt1.y = 50;pt2.x = 300;pt2.y = 600;pt1.x += 50;pt1.y -=20;pt1.x+ ?結(jié)構(gòu)變量成員的訪問結(jié)構(gòu)變量成員的訪問(引用引用)規(guī)則規(guī)則 (4) 可以引用可以引用結(jié)構(gòu)變量成員結(jié)構(gòu)變量成
9、員的的地址地址,也可以引用,也可以引用結(jié)結(jié)構(gòu)變量構(gòu)變量的的地址地址。 例 scanf(%d,&pt1.x); /*輸入pt1.x的值*/ printf(%x,pt1); /*輸出pt1的首地址*/?但不能用以下語句整體讀入結(jié)構(gòu)體變量,例如: scanf(%d,d,pt1); 結(jié)構(gòu)體變量的地址主要用作函數(shù)參數(shù),傳遞結(jié)構(gòu)體變量的地址。 結(jié)構(gòu)變量占用的存儲(chǔ)空間結(jié)構(gòu)變量占用的存儲(chǔ)空間結(jié)構(gòu)變量所占用的存儲(chǔ)空間是該結(jié)構(gòu)所有成員占用的存儲(chǔ)空間和結(jié)構(gòu)變量所占用的存儲(chǔ)空間是該結(jié)構(gòu)所有成員占用的存儲(chǔ)空間和struct studentchar num10;char name8;char sex;char b
10、irth10;char addr50;struct course major10;stu1, stu2;struct coursechar couname20;float score;stu1和和stu2占用的空間都是占用的空間都是319個(gè)字節(jié)個(gè)字節(jié)結(jié)構(gòu)變量占用的存儲(chǔ)空間結(jié)構(gòu)變量占用的存儲(chǔ)空間結(jié)構(gòu)變量所占用的存儲(chǔ)空間是該結(jié)構(gòu)所有成員占用的存儲(chǔ)空間和結(jié)構(gòu)變量所占用的存儲(chǔ)空間是該結(jié)構(gòu)所有成員占用的存儲(chǔ)空間和pt1和和pt2占用的空間都是占用的空間都是8個(gè)字節(jié)個(gè)字節(jié)struct pointint x;int y; pt1, pt2;結(jié)構(gòu)變量的初始化方法結(jié)構(gòu)變量的初始化方法 (1)定義結(jié)構(gòu)變量的同時(shí)初
11、始化定義結(jié)構(gòu)變量的同時(shí)初始化例:struct point pt1 = 100, 50, pt2 = 300, 600;struct student stu1 = “1210501304”, “張三”, f, “1994-08-30”, “重慶市”, “數(shù)據(jù)結(jié)構(gòu)”, 80;結(jié)構(gòu)變量的初始化方法結(jié)構(gòu)變量的初始化方法 (2)先定義結(jié)構(gòu)變量,然后初始化先定義結(jié)構(gòu)變量,然后初始化注意:此時(shí)只能對(duì)結(jié)構(gòu)變量的每個(gè)成員進(jìn)行初始化例:struct point pt1, pt2;pt1.x = 100;pt1.y = 50;pt2.x = 300;pt2.y = 600;struct student stu1 ;
12、strcpy(stu1.num, 1210501304);strcpy(, 張三);stu1.sex = f;strcpy(stu1.birth, 1994-08-30);strcpy(stu1.addr, 重慶市);strcpy(stu1.major.couname, 數(shù)據(jù)結(jié)構(gòu));stu1.major.score = 80;例例6-1 求兩點(diǎn)距離求兩點(diǎn)距離例例6-2 求矩形面積求矩形面積結(jié)構(gòu)與普通的數(shù)據(jù)類型一樣,也可以定義結(jié)構(gòu)數(shù)組結(jié)構(gòu)與普通的數(shù)據(jù)類型一樣,也可以定義結(jié)構(gòu)數(shù)組格式: struct 結(jié)構(gòu)名 數(shù)組名常量表達(dá)式;struct studentchar num10;ch
13、ar name8;char sex;char birth10;char addr50;;struct student stu100;定義數(shù)組stu,可以存放100個(gè)學(xué)生的數(shù)據(jù),數(shù)組stu的每個(gè)元素都是一個(gè)結(jié)構(gòu)體變量結(jié)構(gòu)數(shù)組的初始化方法結(jié)構(gòu)數(shù)組的初始化方法例: struct student stu2 = “1210501304”, “張三”, f, “1994-08-30”, “重慶市”, “1210501330”, “李四”, m, “1994-10-05”, “四川省”;struct studentchar num10;char name8;char sex;char birth10;cha
14、r addr50;;結(jié)構(gòu)數(shù)組的初始化方法結(jié)構(gòu)數(shù)組的初始化方法struct studentchar num10;char name8;char sex;char birth10;char addr50; stu2 = “1210501304”, “張三”, f, “1994-08-30”, “重慶市”, “1210501330”, “李四”, m, “1994-10-05”, “四川省”;結(jié)構(gòu)數(shù)組元素結(jié)構(gòu)數(shù)組元素成員成員的引用的引用#include struct country int num; char name20; x5=1, china, 2, usa, 3, france, 4, en
15、glan, 5, spanish; void main() int i; for(i = 3; i 5; i+) printf(%d%c, xi.num, 0); 程序執(zhí)行結(jié)果4e5s結(jié)構(gòu)數(shù)組元素結(jié)構(gòu)數(shù)組元素整體整體的引用的引用#include struct country int num; char name20; x5=1, china, 2, usa, 3, france, 4, englan, 5, spanish; void main() struct country ss;ss = x3;printf(“%d %sn”, ss.num, ); 同基本類型
16、的指針類似,結(jié)構(gòu)也可以定義其指針變量同基本類型的指針類似,結(jié)構(gòu)也可以定義其指針變量格式: struct 結(jié)構(gòu)名 *指針名struct studentchar num10;char name8;char sex;char birth10;char addr50; ;struct student stu;struct student *pstu;pstu = &stu;通過指針訪問結(jié)構(gòu)成員的方法通過指針訪問結(jié)構(gòu)成員的方法 (1)用)用*訪問訪問struct studentchar num10;char name8;char sex;char birth10;char addr50; ;st
17、ruct student stu;struct student *pstu;pstu = &stu;(*pstu).sex = m;strcpy(*pstu).name, “王剛”)通過指針訪問結(jié)構(gòu)成員的方法通過指針訪問結(jié)構(gòu)成員的方法 (2)用)用-訪問訪問struct studentchar num10;char name8;char sex;char birth10;char addr50; ;struct student stu;struct student *pstu;pstu = &stu;pstu-sex = m;strcpy(pstu-name, “王剛”)通過指
18、針訪問結(jié)構(gòu)成員的方法通過指針訪問結(jié)構(gòu)成員的方法有以下說明和定義語句有以下說明和定義語句 struct student int age; char num8; struct student stu=20,200401“; struct student *p = &stu; 以下選項(xiàng)中引用結(jié)構(gòu)體變量成員的表達(dá)式錯(cuò)誤以下選項(xiàng)中引用結(jié)構(gòu)體變量成員的表達(dá)式錯(cuò)誤的是的是 a) stu.num b) p-num c) (*p).num d) stu-agec語言通過語言通過typedef建立新的數(shù)據(jù)類型名建立新的數(shù)據(jù)類型名 例如例如 typedef short int16; int16 x, y;
19、表示定義了兩個(gè)短整形的變量表示定義了兩個(gè)短整形的變量x和和ystruct studentchar num10;char name8;char sex;char birth10;char addr50; ;struct student stu1, stu2;struct studentchar num10;char name8;char sex;char birth10;char addr50; ;typedef struct student student;student stu1, stu2;struct studentchar num10;char name8;char sex;char birth10;char addr50; ;type
溫馨提示
- 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 粵人版地理八年級(jí)下冊(cè)《第二節(jié) 重要的地理分界線》聽課評(píng)課記錄1
- 新人教版七年級(jí)數(shù)學(xué)上冊(cè) 3.1.2 《等式的性質(zhì)》聽評(píng)課記錄
- 七年級(jí)(人教版)集體備課聽評(píng)課記錄:3.2《解一元一次方程(一)-合并同類項(xiàng)與移項(xiàng)1》
- 新蘇教版六年級(jí)數(shù)學(xué)下冊(cè)聽評(píng)課記錄
- 三年級(jí)語文上聽評(píng)課記錄
- 蘇科版數(shù)學(xué)七年級(jí)下冊(cè)10.2《二元一次方程組》聽評(píng)課記錄
- 人教版地理七年級(jí)下冊(cè)第十章《極地地區(qū)》聽課評(píng)課記錄1
- 人教版數(shù)學(xué)八年級(jí)下冊(cè)《19.3 課題學(xué)習(xí) 選擇方案》聽評(píng)課記錄
- 新人教版七年級(jí)數(shù)學(xué)上冊(cè)1.3.2《有理數(shù)的減法》聽評(píng)課記錄2
- 八年級(jí)道德與法治上冊(cè)聽課評(píng)課記錄第一單元走進(jìn)社會(huì)生活
- 完整液壓系統(tǒng)課件
- 2024年山東省青島市中考道德與法治試題卷(含答案及解析)
- 生產(chǎn)制造工藝流程規(guī)范與作業(yè)指導(dǎo)書
- 班級(jí)建設(shè)方案中等職業(yè)學(xué)校班主任能力大賽
- T-TJSG 001-2024 天津市社會(huì)組織社會(huì)工作專業(yè)人員薪酬指導(dǎo)方案
- 芯片設(shè)計(jì)基礎(chǔ)知識(shí)題庫(kù)100道及答案(完整版)
- 00015-英語二自學(xué)教程-unit2
- 2024變電站無人機(jī)巡檢系統(tǒng)規(guī)范第2部分:檢測(cè)規(guī)范
- 人教版九上化學(xué)第二單元課題2氧氣課件
- 三年級(jí)上冊(cè)乘法豎式計(jì)算200道及答案
- 區(qū)塊鏈技術(shù)指南
評(píng)論
0/150
提交評(píng)論