版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
共用體
張競丹深圳信息職業(yè)技術(shù)學(xué)院共用體共用體(Unit)將不同的數(shù)據(jù)組織成一個(gè)整體,共同占用一段內(nèi)存,其內(nèi)存空間等于字節(jié)數(shù)最大的成員的長度。定義共用體類型的一般形式如下:union共用體名{
成員表列;};共用體例如,將描述學(xué)生信息的結(jié)構(gòu)體類型改用共用體來描述unitustudent{intnum;
charname[20];
floatscore;};共用體變量的定義與結(jié)構(gòu)體變量定義一樣,例如定義unitstudent類型的共用體變量:unitustudentustu;共用體共用體變量ustu所占內(nèi)存空間20個(gè)字節(jié),即為其成員的內(nèi)存大小。同樣,共用體變量的引用與結(jié)構(gòu)體變量一致,不能直接引用共用體變量ustu,只能逐個(gè)引用共用體變量的成員,如ustu.num,,ustu.score。謝謝您的聆聽!Thankyou!結(jié)構(gòu)體類型的指針變量
張競丹深圳信息職業(yè)技術(shù)學(xué)院結(jié)構(gòu)體類型的指針變量所謂結(jié)構(gòu)體指針就是指向結(jié)構(gòu)體數(shù)據(jù)的指針,即該結(jié)構(gòu)體數(shù)據(jù)的起始地址。結(jié)構(gòu)體指針變量的基類型必須與它所指向的結(jié)構(gòu)體變量的類型相同。定義結(jié)構(gòu)體指針變量的一般形式如下:
結(jié)構(gòu)體類型名*結(jié)構(gòu)體指針變量名;結(jié)構(gòu)體類型的指針變量例如,定義描述學(xué)生信息的結(jié)構(gòu)體類型structstudent,并定義該結(jié)構(gòu)體類型的變量s和該結(jié)構(gòu)體類型的指針變量p。structstudent{intnum;charname[20];structdatebirthday;
floatscore[3];};structstudents;
structstudent*p;結(jié)構(gòu)體類型的指針變量若p=&s;則指針變量p指向結(jié)構(gòu)體變量s,對(duì)結(jié)構(gòu)體成員的引用可以通過結(jié)構(gòu)體指針變量表示:(*p).成員名p->成員名結(jié)構(gòu)體類型的指針變量例7-4計(jì)算兩個(gè)復(fù)數(shù)的和,要求以結(jié)構(gòu)體類型的指針變量完成。編程分析:(1)數(shù)據(jù)結(jié)構(gòu)類型題目要求形式語言(C)的表達(dá)數(shù)據(jù)類型復(fù)數(shù)類型結(jié)構(gòu)體類型:structcomplex輸入數(shù)據(jù)兩個(gè)復(fù)數(shù)2個(gè)structcomplex類型變量:a,b輸出數(shù)據(jù)兩個(gè)復(fù)數(shù)的和存放在structcomplex類型變量a中結(jié)構(gòu)體類型的指針變量例7-4計(jì)算兩個(gè)復(fù)數(shù)的和,要求以結(jié)構(gòu)體類型的指針變量完成。編程分析:(2)算法算法流程形式語言的表達(dá)定義復(fù)數(shù)加法函數(shù),其中形參為指針類型voidcmpadd(structcomplex*m,structcomplex*n){ m->real←m->real+n->real
m->image←m->image+n->image}在主函數(shù)中調(diào)用函數(shù)cmpadd計(jì)算兩個(gè)復(fù)數(shù)的和cmpadd(a,b)輸出結(jié)果以printf函數(shù)輸出a謝謝您的聆聽!Thankyou!結(jié)構(gòu)體數(shù)組
張競丹深圳信息職業(yè)技術(shù)學(xué)院課前準(zhǔn)備結(jié)構(gòu)體數(shù)組的定義結(jié)構(gòu)體數(shù)組的一般格式:結(jié)構(gòu)體類型
結(jié)構(gòu)體數(shù)組名[元素個(gè)數(shù)];結(jié)構(gòu)體數(shù)組的引用結(jié)構(gòu)體數(shù)組的每個(gè)元素就相當(dāng)于一個(gè)結(jié)構(gòu)體變量,因此其引用方式與結(jié)構(gòu)體變量的引用方式類似。其引用的一般格式如下:結(jié)構(gòu)體數(shù)組名[下標(biāo)].成員名例如,s[0].name表示結(jié)構(gòu)體數(shù)組中第一個(gè)元素的成員name。結(jié)構(gòu)體數(shù)組課前準(zhǔn)備例7-3
描述三個(gè)學(xué)生的信息(姓名、學(xué)號(hào)、成績),并計(jì)算平均成績。編程分析:(1)數(shù)據(jù)結(jié)構(gòu)結(jié)構(gòu)體數(shù)組類型題目要求形式語言(C)的表達(dá)數(shù)據(jù)類型學(xué)生信息結(jié)構(gòu)體類型:structstudent數(shù)據(jù)三個(gè)學(xué)生的信息1個(gè)structstudent類型數(shù)組:stu[3]數(shù)據(jù)1個(gè)整型(int)變量:i
循環(huán)變量數(shù)據(jù)1個(gè)實(shí)型(float)變量:sum初值sum←0,用于計(jì)算成績累加值輸出數(shù)據(jù)平均成績sum/3課前準(zhǔn)備例7-3
描述三個(gè)學(xué)生的信息(姓名、學(xué)號(hào)、成績),并計(jì)算平均成績。編程分析:(2)算法結(jié)構(gòu)體數(shù)組算法流程形式語言的表達(dá)輸入三個(gè)學(xué)生的信息在for循環(huán)中:
以scanf函數(shù)依次讀入三個(gè)學(xué)生的信息,并存放在數(shù)組stu中。計(jì)算成績累加和在for循環(huán)中(循環(huán)變量i∈[0,3]):sum+=stu[i].score計(jì)算平均分,并輸出結(jié)果sum←sum/3以printf函數(shù)輸出sum謝謝您的聆聽!Thankyou!結(jié)構(gòu)體變量的引用
張競丹深圳信息職業(yè)技術(shù)學(xué)院結(jié)構(gòu)體變量的引用可以用成員運(yùn)算符“.”對(duì)數(shù)據(jù)成員進(jìn)行引用,其引用方式為:
結(jié)構(gòu)體變量名.成員名其中“.”是成員運(yùn)算符,在所有運(yùn)算符中優(yōu)先級(jí)最高。例如,將結(jié)構(gòu)體變量s1的序號(hào)賦值為101s1.num=101;結(jié)構(gòu)體變量的引用注意:(1)不能將一個(gè)結(jié)構(gòu)體變量作為一個(gè)整體進(jìn)行輸入和輸出,只能對(duì)變量中的每個(gè)成員分別進(jìn)行輸入和輸出。(2)如果成員本身也是一個(gè)結(jié)構(gòu)體類型,那么也不能直接將該成員變量作為一個(gè)整體輸出,而應(yīng)該采用若干個(gè)成員運(yùn)算符“.”,逐級(jí)找到低一級(jí)的成員,直到找到最低級(jí)的成員,然后才能對(duì)最低級(jí)的成員進(jìn)行存取。(3)各個(gè)成員變量可以作為普通變量,例如s1.score[0]++,就相當(dāng)于將其成績加1。結(jié)構(gòu)體變量的引用例7-2計(jì)算兩個(gè)復(fù)數(shù)的和編程分析:(1)數(shù)據(jù)結(jié)構(gòu)類型題目要求形式語言(C)的表達(dá)數(shù)據(jù)類型復(fù)數(shù)類型結(jié)構(gòu)體類型:structcomplex輸入數(shù)據(jù)兩個(gè)復(fù)數(shù)2個(gè)structcomplex類型變量:a,b輸出數(shù)據(jù)兩個(gè)復(fù)數(shù)的和存放在structcomplex類型變量a中結(jié)構(gòu)體變量的引用例7-2計(jì)算兩個(gè)復(fù)數(shù)的和編程分析:(2)算法算法流程形式語言的表達(dá)定義復(fù)數(shù)加法函數(shù)函數(shù)cmpadd: m.real←m.real+n.real m.image←m.image+n.image
返回m在主函數(shù)中調(diào)用函數(shù)cmpadd計(jì)算兩個(gè)復(fù)數(shù)的和a←cmpadd(a,b)輸出結(jié)果以printf函數(shù)輸出a謝謝您的聆聽!Thankyou!結(jié)構(gòu)體變量的初始化
張競丹深圳信息職業(yè)技術(shù)學(xué)院結(jié)構(gòu)體變量的初始化
與普通變量一樣,結(jié)構(gòu)體變量在使用之前應(yīng)該先對(duì)其初始化。方法與其它變量初始化方法類似,即在定義結(jié)構(gòu)體變量的同時(shí)為其每個(gè)成員賦初值,把各成員的值按順序放在花括號(hào)中,各值之間用逗號(hào)隔開。一般格式:struct結(jié)構(gòu)體名變量={各成員初值};例如:structstudents1={101,"張三",1992,5,1,100,90.5,80};謝謝您的聆聽!Thankyou!結(jié)構(gòu)體變量的定義
張競丹深圳信息職業(yè)技術(shù)學(xué)院結(jié)構(gòu)體變量的定義結(jié)構(gòu)體類型是一種自定義類型,與C語言的基本類型一樣,可以定義變量。在程序中使用結(jié)構(gòu)體類型的數(shù)據(jù),要定義結(jié)構(gòu)體類型的變量。定義結(jié)構(gòu)體的變量有三種方法:(1)先聲明結(jié)構(gòu)體類型,再定義結(jié)構(gòu)體類型的變量定義的一般格式:struct結(jié)構(gòu)體名結(jié)構(gòu)體變量名;例如:structstudents1,s2;結(jié)構(gòu)體變量的定義(2)在聲明結(jié)構(gòu)體類型的同時(shí)定義變量定義的一般格式為:struct結(jié)構(gòu)體名
{成員表列;}變量名表列;例如:structstduent{intnum;charname[20];structdatebirthday;floatscore[3];}s1,s2;結(jié)構(gòu)體變量的定義(3)直接定義結(jié)構(gòu)類型變量定義的一般格式為:struct{
成員表列;}變量名表列;例如:struct{intnum;charname[20];charsex;floatscore;charaddr[30];}s1,s2;結(jié)構(gòu)體變量的定義關(guān)于結(jié)構(gòu)體類型的說明:類型與變量是不同的概念,不要混同。只能對(duì)變量賦值、存取或運(yùn)算,而不能對(duì)一個(gè)類型賦值、存取或運(yùn)算。在編譯時(shí),對(duì)類型是不分配空間的,只對(duì)變量分配空間。成員名可以與程序中的變量名相同,二者不代表同一對(duì)象。成員也可以是一個(gè)結(jié)構(gòu)體變量。謝謝您的聆聽!Thankyou!結(jié)構(gòu)體的定義
張競丹深圳信息職業(yè)技術(shù)學(xué)院引言
如何描述復(fù)雜的數(shù)學(xué)數(shù)據(jù)呢?如復(fù)數(shù)等。還有現(xiàn)實(shí)世界中的復(fù)雜數(shù)據(jù)呢?如學(xué)生信息等。結(jié)構(gòu)體類型是一種較為復(fù)雜卻非常靈活的構(gòu)造型數(shù)據(jù)類型,它可以將不同類型的數(shù)據(jù)組合成一個(gè)有機(jī)的整體,存儲(chǔ)多種類型的數(shù)據(jù),其中組成結(jié)構(gòu)體類型的每個(gè)數(shù)據(jù)稱為該結(jié)構(gòu)體類型的成員項(xiàng),簡稱成員。結(jié)構(gòu)體的定義結(jié)構(gòu)體類型聲明的一般格式為:struct
結(jié)構(gòu)體名{
數(shù)據(jù)類型成員名1;
數(shù)據(jù)類型成員名2;
…
…
數(shù)據(jù)類型成員名n;};結(jié)構(gòu)體的定義復(fù)數(shù)結(jié)構(gòu)體類型的定義:structcomplex{floatreal;/*實(shí)部*/floatimage;/*虛部*/};realimagestructcomplex結(jié)構(gòu)體的定義學(xué)生信息結(jié)構(gòu)體類型的定義:structstudent{intnum;/*學(xué)號(hào)*/charname[20];/*姓名*/intage;/*年齡*/floatscore[3];/*成績數(shù)組,包括數(shù)學(xué)、英語、物理成績*/};structstudentnumnameagescoreofmathscoreofEnglishscoreofChinese
結(jié)構(gòu)體的定義描述年齡的成員age其數(shù)值隨數(shù)據(jù)存儲(chǔ)時(shí)間的變化而發(fā)生變化,如果不及時(shí)更新此信息,會(huì)造成數(shù)據(jù)系統(tǒng)信息存儲(chǔ)有誤。因此,一般對(duì)年齡信息的描述常表述為出生年月日。structstudent{intnum;/*學(xué)號(hào)*/charname[20];/*姓名*/structdatebirthday;/*出生日期
溫馨提示
- 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屆九年級(jí)下學(xué)期中考二模數(shù)學(xué)試卷(含答案)
- 5年中考3年模擬試卷初中道德與法治九年級(jí)下冊(cè)02第2課時(shí)多彩的職業(yè)
- DB11-T 1991-2022 職業(yè)健康檢查技術(shù)規(guī)范
- DB11-T 1871-2021 建筑工程輪扣式鋼管腳手架安全技術(shù)規(guī)程
- 城市地下管廊渣土清運(yùn)協(xié)議
- 農(nóng)田水利渣土運(yùn)輸服務(wù)合同
- 住宅裝修環(huán)保驗(yàn)收合同
- 咨詢行業(yè)居間合作協(xié)議模板
- 個(gè)人園藝植物運(yùn)輸協(xié)議
- 不等式及其解集完整版
- 運(yùn)作管理的價(jià)值鏈分析與戰(zhàn)略布局
- 早期教育大學(xué)職業(yè)規(guī)劃
- 發(fā)展融合鄉(xiāng)村旅游產(chǎn)業(yè)
- 民事訴訟法(第四版)課件:強(qiáng)制執(zhí)行通則
- 檔案室監(jiān)控方案
- 《戊戌變法》名師課件
- 舞蹈美學(xué)之旅
- 驗(yàn)貨員培訓(xùn)教程課件
- 《電力機(jī)車制動(dòng)機(jī)》 課件 項(xiàng)目三 CCB-II制動(dòng)系統(tǒng)
- 學(xué)校鑄牢中華民族共同體意識(shí)班會(huì)課件
評(píng)論
0/150
提交評(píng)論