




已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1,概 述,在程序的設(shè)計(jì)中, 會(huì)遇見一些關(guān)系密切、具有內(nèi)在聯(lián)系而數(shù)據(jù)類型不同的數(shù)據(jù)。 例如, 一個(gè)班、一個(gè)年級或全校學(xué)生的學(xué)籍卡包括他們的學(xué)號(hào)、姓名、性別、年齡、學(xué)習(xí)成績、地址 等。這些數(shù)據(jù)有的是數(shù)字、有的是字符,其數(shù)據(jù)類型不同, 對于這樣一類數(shù)據(jù)可以用結(jié)構(gòu)體來處理。,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)體的說明,結(jié)構(gòu)體說明的格式:,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)體的說明,結(jié)構(gòu)體成員可以是簡單變量、數(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)體變量同其它變量一樣也必須先說明、定義, 然后才能使用。 結(jié)構(gòu)體變量定義要按照結(jié)構(gòu)體說明中的結(jié)構(gòu)體類型, 為被定義的結(jié)構(gòu)體變量分配內(nèi)存單元, 而結(jié)構(gòu)體說明不分配內(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)先級最高,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í),對其成員賦初值。,結(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)體成員表中對成員賦初值,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è)班級學(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開始), 結(jié)構(gòu)體變量是 stu0、stu1、stu2、 .stu29。,結(jié)構(gòu)體數(shù)組也必須先定義或說明,后引用。,結(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)體名”是已被說明的結(jié)構(gòu)體類型。 初始化的數(shù)據(jù)的個(gè)數(shù)與結(jié)構(gòu)體數(shù)組元素的個(gè)數(shù)相同及數(shù)據(jù)類型相匹配。 為了提高可讀性,最好每一個(gè)數(shù)組元素(結(jié)構(gòu)體變量)的初始數(shù)據(jù)都用花括號(hào)括起來。,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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)校游泳館管理制度
- 學(xué)校營養(yǎng)政管理制度
- 學(xué)生上學(xué)隊(duì)管理制度
- 學(xué)生用手機(jī)管理制度
- 寧洱縣財(cái)務(wù)管理制度
- 安全生物柜管理制度
- 安環(huán)部綜合管理制度
- 安防部工作管理制度
- 實(shí)行平安卡管理制度
- 寵物火化店管理制度
- 人教版美術(shù)五下第20課《珍愛國寶 古代的青銅藝術(shù)》課件4
- 綜合布線設(shè)計(jì)與施工 第4版 課件全套 第1-13章 網(wǎng)絡(luò)綜合布線概述-網(wǎng)絡(luò)綜合布線實(shí)訓(xùn)
- DB14-T 2876-2023 高粱施肥技術(shù)規(guī)程
- 汽車減震器項(xiàng)目實(shí)施方案
- 液化石油氣的基本知識(shí)
- 小學(xué)語文-“實(shí)用性閱讀與交流”學(xué)習(xí)任務(wù)群設(shè)計(jì)與實(shí)施例談
- 中國工商銀行委托貸款委托合同
- 移動(dòng)破碎施工方案
- JGT295-2010 空調(diào)變風(fēng)量末端裝置
- PLC三層電梯控制系統(tǒng)
- (醫(yī)學(xué)課件)《喚醒護(hù)理》解讀
評論
0/150
提交評論