




已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1,概 述,在程序的設(shè)計(jì)中, 會(huì)遇見(jiàn)一些關(guān)系密切、具有內(nèi)在聯(lián)系而數(shù)據(jù)類型不同的數(shù)據(jù)。 例如, 一個(gè)班、一個(gè)年級(jí)或全校學(xué)生的學(xué)籍卡包括他們的學(xué)號(hào)、姓名、性別、年齡、學(xué)習(xí)成績(jī)、地址 等。這些數(shù)據(jù)有的是數(shù)字、有的是字符,其數(shù)據(jù)類型不同, 對(duì)于這樣一類數(shù)據(jù)可以用結(jié)構(gòu)體來(lái)處理。,2,概 述,結(jié)構(gòu)體是不同數(shù)據(jù)類型的數(shù)據(jù)的集合; 結(jié)構(gòu)體是一種數(shù)據(jù)結(jié)構(gòu),它需要用戶根據(jù)自己的需要,按某種規(guī)則定義; 結(jié)構(gòu)體是構(gòu)造類型的數(shù)據(jù)。,3,結(jié)構(gòu)體的說(shuō)明,結(jié)構(gòu)體說(shuō)明的格式:,struct 結(jié)構(gòu)體名 結(jié)構(gòu)體成員表; ;,struct (是保留字)結(jié)構(gòu)體類型標(biāo)識(shí)符。 結(jié)構(gòu)體名(稱結(jié)構(gòu)體類型名)由標(biāo)識(shí)符組成。 大括號(hào)中的結(jié)構(gòu)體成員表, 稱為結(jié)構(gòu)體。 結(jié)構(gòu)體成員表包含若干成員。,成員的表達(dá)形式:,數(shù)據(jù)類型標(biāo)識(shí)符 結(jié)構(gòu)體成員名;,例如: struct date int day; int month; int year; ;,date是結(jié)構(gòu)體名,day、month、year是結(jié)構(gòu)體成員,4,結(jié)構(gòu)體的說(shuō)明,結(jié)構(gòu)體成員可以是簡(jiǎn)單變量、數(shù)組、指針等。 結(jié)構(gòu)體可以嵌套使用, 即一個(gè)結(jié)構(gòu)體變量也可以成 為另一個(gè)結(jié)構(gòu)體的成員。,struct student int num; char name20; char sex; int age; struct date birthday; int mon_name4; int *year; ;,結(jié)構(gòu)體成員是數(shù)組,結(jié)構(gòu)體成員是結(jié)構(gòu)體,結(jié)構(gòu)體成員是指針,例:,5,結(jié)構(gòu)體變量同其它變量一樣也必須先說(shuō)明、定義, 然后才能使用。 結(jié)構(gòu)體變量定義要按照結(jié)構(gòu)體說(shuō)明中的結(jié)構(gòu)體類型, 為被定義的結(jié)構(gòu)體變量分配內(nèi)存單元, 而結(jié)構(gòu)體說(shuō)明不分配內(nèi)存。,結(jié)構(gòu)體變量的定義,6,結(jié)構(gòu)體變量的定義,struct 結(jié)構(gòu)體名 結(jié)構(gòu)體成員表; ; . struct 結(jié)構(gòu)體名 結(jié)構(gòu)體變量名表;,其定義格式為:,例如: struct student int num; char name20; char sex; int age; float score; char addr30; ; struct student student1,student2,student3;,7,結(jié)構(gòu)體成員的引用,用結(jié)構(gòu)體成員運(yùn)算符“.”引用結(jié)構(gòu)體成員格式:,結(jié)構(gòu)體變量名 . 結(jié)構(gòu)體成員,“.” 結(jié)構(gòu)體成員運(yùn)算符,優(yōu)先級(jí)最高,struct student long num; char name20; char sex; int age; float score; char addr30; ;,用結(jié)構(gòu)成員運(yùn)算符“.”引用結(jié)構(gòu)體成員 struct student stu1; struct student stu2; stu1.num=2010001; stu1.sex=M; stu1.age=18; stu1.score=87; strcpy(stu1.addr,“Beijing”);,例:,8,結(jié)構(gòu)體變量的初始化,結(jié)構(gòu)體變量的初始化,就是在定義結(jié)構(gòu)體變量的同時(shí),對(duì)其成員賦初值。,結(jié)構(gòu)體變量初始化的格式:,struct 結(jié)構(gòu)體名 結(jié)構(gòu)體變量名= 初始數(shù)據(jù) ;,與數(shù)組類似,結(jié)構(gòu)體變量只可整體初始化,不可整體賦值。,9,例: struct student long num; char name20; char sex; int age; float score; char addr30; ; struct student stu1=2010001, “Li feng”, M, 18, 87.0, “Beijing”;,struct student long num=2010001; char name20=“Li feng”; char sex=M; int age=18; float score=87.0; char addr30=“Beijing”; stu1,stu2;,不能直接在結(jié)構(gòu)體成員表中對(duì)成員賦初值,10,結(jié)構(gòu)體數(shù)組的概念,結(jié)構(gòu)體數(shù)組是其數(shù)組元素都是具有相同結(jié)構(gòu)體類型的結(jié)構(gòu)體變量。即結(jié)構(gòu)體數(shù)組是結(jié)構(gòu)體變量集合的一種數(shù)組。,例如: 一個(gè)班級(jí)學(xué)生的學(xué)籍卡的數(shù)據(jù)結(jié)構(gòu)如下, 要使用該結(jié)構(gòu)體中每個(gè)學(xué)生的數(shù)據(jù), 就要定義30個(gè)結(jié)構(gòu)體變量(名), 即:stu1, stu2. stu30。這種方法很不方便。由于該例結(jié)構(gòu)體變量名都相同, 就是最后的序號(hào)不同, 這種情況可使用結(jié)構(gòu)體數(shù)組。,struct student int num; char name20; char sex; int age; float score; char addr30; stu1,stu2,stu30;,stu30;,11,例如: static struct student stu30; 例中定義了30個(gè)結(jié)構(gòu)體變量,下標(biāo)0-29(下標(biāo)從0開(kāi)始), 結(jié)構(gòu)體變量是 stu0、stu1、stu2、 .stu29。,結(jié)構(gòu)體數(shù)組也必須先定義或說(shuō)明,后引用。,結(jié)構(gòu)體數(shù)組定義的格式:,struct 結(jié)構(gòu)體名 結(jié)構(gòu)體數(shù)組名 元素個(gè)數(shù);,結(jié)構(gòu)體數(shù)組的定義,12,結(jié)構(gòu)體數(shù)組的初始化,結(jié)構(gòu)體數(shù)組的初始化格式為:,struct 結(jié)構(gòu)體名 結(jié)構(gòu)體數(shù)組名 元素個(gè)數(shù)= 初始化數(shù)據(jù) ;,struct 結(jié)構(gòu)體名 結(jié)構(gòu)體成員表; 結(jié)構(gòu)體數(shù)組名 元素個(gè)數(shù)= 初始化數(shù)據(jù) ;,或,結(jié)構(gòu)體即“struct 結(jié)構(gòu)體名”是已被說(shuō)明的結(jié)構(gòu)體類型。 初始化的數(shù)據(jù)的個(gè)數(shù)與結(jié)構(gòu)體數(shù)組元素的個(gè)數(shù)相同及數(shù)據(jù)類型相匹配。 為了提高可讀性,最好每一個(gè)數(shù)組元素(結(jié)構(gòu)體變量)的初始數(shù)據(jù)都用花括號(hào)括起來(lái)。,13,結(jié)構(gòu)體數(shù)組的初始化,struct student int num; char name20; char sex; int age; float score; char addr30; ; struct student stu30= 2010001,“Li feng”, M,18, 87,“Beijing”, 2010002,“Wang bing”, M,18,79,“Beijing”, 2010030,“Chen ming”, M,17, 80,“Beijing” ;,例中給結(jié)構(gòu)體變量stu0、 stu1、 Stu29的各個(gè)成員賦初值。,例 下述程序的輸出結(jié)果是: main( ) struct copml int x; int y; coum2=1,3,2,7; printf(“%d”,coum0.y/coum0.x*coum1.x); A) 0 B) 1 C) 3 D) 6,答案: D,3,1,2,15,自定義類型,類型定義就是給已經(jīng)存在的數(shù)據(jù)類型重新命名一個(gè)新名字。 例如:數(shù)據(jù)類型float可重新命名為REAL: typedef float REAL; 類型定義的一般形式為
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年小自考公共事業(yè)管理必考知識(shí)點(diǎn)試題及答案
- 2017年廣東b證試題及答案
- 汽車空調(diào)系統(tǒng)的維修與保養(yǎng)試題及答案
- 2024年美容師考試技能提升同步公務(wù)員省考試題及答案
- 2024年二手車評(píng)估師的考前心理調(diào)節(jié)技巧試題及答案
- 2024年汽車美容師個(gè)人職業(yè)定位試題及答案
- 汽車美容師時(shí)效性服務(wù)與客戶體驗(yàn)試題及答案
- 食品檢驗(yàn)實(shí)驗(yàn)室管理試題及答案
- 2020年mpacc英語(yǔ)試題及答案
- 寵物營(yíng)養(yǎng)師最常見(jiàn)誤區(qū)試題及答案
- 2024年安徽省合肥市新站區(qū)中考一模數(shù)學(xué)試題
- 智聯(lián)招聘測(cè)評(píng)題庫(kù)2024答案
- 地震應(yīng)急疏散演練方案安全教育
- 無(wú)人生還介紹讀后感課件
- 彝族服飾簡(jiǎn)要介紹課件
- 延遲焦化裝置吸收穩(wěn)定系統(tǒng)工藝與操作資料課件
- 教師職業(yè)道德-愛(ài)國(guó)守法
- 醫(yī)療糾紛的法律風(fēng)險(xiǎn)與法律防范
- 迎審指導(dǎo)及注意事項(xiàng)
- 山東省汽車維修工時(shí)定額(T-SDAMTIA 0001-2023)
- 《銅產(chǎn)業(yè)鏈》課件
評(píng)論
0/150
提交評(píng)論