C語言程序ppt課件ch10結(jié)構(gòu)體與共用體_第1頁
C語言程序ppt課件ch10結(jié)構(gòu)體與共用體_第2頁
C語言程序ppt課件ch10結(jié)構(gòu)體與共用體_第3頁
C語言程序ppt課件ch10結(jié)構(gòu)體與共用體_第4頁
C語言程序ppt課件ch10結(jié)構(gòu)體與共用體_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、學(xué)習(xí)第40頁第1頁、第10章、結(jié)構(gòu)體和共享體、第40頁第2頁、本章要點(diǎn)、掌握結(jié)構(gòu)類型數(shù)據(jù)的定義和引用的共享主體類型數(shù)據(jù)的定義和參照。 第40頁第3頁、第10.1頁結(jié)構(gòu)類型和這些個(gè)的屬性可以定義為相互獨(dú)立的簡(jiǎn)單變量,利用難以反映相互的內(nèi)在聯(lián)系(同一學(xué)生的屬性)的結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)來描述這些個(gè)信息并可以將不同類型的數(shù)據(jù)匯總到一個(gè)有機(jī)的整體中。問題:結(jié)構(gòu)是與邏輯性相互關(guān)聯(lián)的一系列成分的集合。 結(jié)構(gòu)中的成分可以是不同類型的數(shù)據(jù),結(jié)構(gòu)中的成分稱為結(jié)構(gòu)的成員,一個(gè)學(xué)生具有學(xué)生編號(hào)/姓名/性別/年齡/住址等屬性,在使用結(jié)構(gòu)之前,首先對(duì)結(jié)構(gòu)的結(jié)構(gòu)進(jìn)行描述,稱為結(jié)構(gòu)的定義。 結(jié)構(gòu)定義指示該結(jié)構(gòu)的組件以及每個(gè)成員的類型

2、。 修訂第40頁第4頁,定義10.1.1結(jié)構(gòu)類型,例如: struct student int num; 卡爾名稱20; 卡爾斯克; 英格; 卡爾阿德德爾30; 定義結(jié)構(gòu)類型的一般格式是,喀嚦聲結(jié)構(gòu)類型名稱成員表列,以說明每個(gè)成員的類型。成員名稱的命名約定與變量名稱相同。修訂第40頁第5頁,定義10.1.2結(jié)構(gòu)變量,方法1 :定義結(jié)構(gòu)類型,然后定義變量名struct student int num。 卡爾名稱20; 卡爾斯克; 英格; 卡爾阿德德爾30; 結(jié)構(gòu)梯度梯度1、梯度2; 然后將studet1和sudent2定義為struct student類型變量。 只能指定一個(gè)變量,而不能指定結(jié)構(gòu)

3、名稱。 合訂第40頁的第6頁,可以用符號(hào)常數(shù)表示結(jié)構(gòu)體型,如:#definestudentstudent等。 卡爾名稱20; 卡爾斯克; 英格; 卡爾阿德德爾30; 可以直接在student中定義變量,例如STUDENT STUDENT1,student2。 此時(shí),不需要將牛鼻子字struct寫入40頁的第7頁。 方法2 :定義類型時(shí)在云同步中定義變量。 例如,結(jié)構(gòu)步驟編號(hào); 卡爾名稱20; 卡爾斯克; 英格; 卡爾阿德德爾30; 蘇丹1、蘇丹2;一般形式: struct結(jié)構(gòu)名成員表列變量名表列,合訂第40頁第8頁,方法3 :直接定義結(jié)構(gòu)型變量。 的雙曲馀弦值。 其一般形式為struct成員表

4、列變量名表列,此時(shí)結(jié)構(gòu)名不出現(xiàn),修訂第40頁第9頁,有些說明:1 .類型和變量是不同的概念,不要混淆2 .結(jié)構(gòu)中的成員可以單獨(dú)使用,其英日; 英年;結(jié)構(gòu)步驟數(shù)量; 卡爾名稱20; 英格; 結(jié)構(gòu)日期比率; 蘇丹1、蘇丹2; 4 .成員名稱可以與普拉姆中的變量名稱相同。 兩者不代表同一個(gè)對(duì)象。 合訂第40頁第10頁,引用10.1.3結(jié)構(gòu)變量,規(guī)則:不能將一個(gè)結(jié)構(gòu)變量作為一個(gè)整體分配輸出。結(jié)構(gòu)變量名稱: printf (.student1); printf(“ %d”、student1.num ); 輸出10010,錯(cuò)了! 是,正確。2 .如果成員本身屬于另一種結(jié)構(gòu)類型,則只能對(duì)最低級(jí)別的成員進(jìn)行值

5、或網(wǎng)站數(shù)據(jù)庫(kù),然后進(jìn)行運(yùn)算。 例如: student1.birthday.year,第40頁第11頁(續(xù)),3 .對(duì)成員變量可以像普通變量那樣進(jìn)行各種運(yùn)算。 示例: sumage=student1.agestudde 4.可以引用成員的地址,也可以引用結(jié)構(gòu)變量的地址。 例如,掃描(“% d”、錯(cuò)誤!輸入student1.num的值,輸出student1的開頭地址,第40頁第12頁,10.1.4結(jié)構(gòu)變量的初始化,struct student long int num; 卡爾名稱20; 卡爾斯克; 卡爾阿德dr 20; a=9801、王紅、w、兩個(gè)指紋路徑主打印機(jī)(no. % ldn名稱: % s

6、n sex : % cn地址: % sn )、a.num、, 運(yùn)行結(jié)果: no.9801 name : wanghong sex : w address 33602 linggongroad,修訂第40頁第13頁,10.2結(jié)構(gòu)體陣列,結(jié)構(gòu)體使用陣列類型作為結(jié)構(gòu)體的成員。 用以結(jié)構(gòu)體型為排列要素的基型構(gòu)成排列。、結(jié)構(gòu)與數(shù)組的關(guān)系,例如struct student int xh; 卡爾xm14; 卡拉西b; 浮動(dòng)sx; xscj96; 的雙曲馀弦值。 96個(gè)元素都有結(jié)構(gòu)數(shù)據(jù)類型,合訂第40頁第14頁,結(jié)構(gòu)數(shù)組是數(shù)組,數(shù)組中的每個(gè)元素都是結(jié)構(gòu)類型。 描述結(jié)構(gòu)數(shù)組的方法:定義結(jié)構(gòu),然后使用

7、結(jié)構(gòu)類型描述數(shù)組變量。 /為了記錄100人的基本情況,說明具有100個(gè)要素的數(shù)組。 數(shù)組的基本類型是結(jié)構(gòu)體struct person char name 30。 卡爾斯克; 結(jié)構(gòu)日期生命周期管理100; man是具有100個(gè)要素的結(jié)構(gòu)陣列,陣列的各要素為人員型。10.2.1結(jié)構(gòu)數(shù)組的定義,修訂第40頁第15頁,如: struct student int num; 卡爾名稱20; 卡爾斯克; 英格; 卡爾阿德德爾30; 結(jié)構(gòu)步驟3;結(jié)構(gòu)步驟數(shù)量; stu3; 或結(jié)構(gòu)編號(hào); stu3;一般形式: struct構(gòu)造體類型名元素?cái)?shù)struct構(gòu)造體類型名構(gòu)造體數(shù)組名、第40頁第16頁、第10.2.2構(gòu)

8、造體排列的引用、構(gòu)造體排列中的具體元素的網(wǎng)站數(shù)據(jù)庫(kù),必須遵守排列使用的規(guī)定,用下標(biāo)進(jìn)行網(wǎng)站數(shù)據(jù)庫(kù)。要網(wǎng)站數(shù)據(jù)庫(kù)到結(jié)構(gòu)數(shù)組中某個(gè)特定元素下的成員,請(qǐng)遵守對(duì)結(jié)構(gòu)成員的網(wǎng)站數(shù)據(jù)庫(kù)規(guī)定,并使用“.”網(wǎng)站數(shù)據(jù)庫(kù)運(yùn)算符和成員名稱,按第40頁第17頁,strcpy (,F(xiàn)angjin ); man3.sex=M; man3.birthday.year=1963; man3.birthday.month=9; man3.birthday.day=13; 例如,要將數(shù)組man的元素編號(hào)3分配給Fangjin,m,1963,9,13,請(qǐng)使用以下語句:分配給數(shù)組中的元素成員,共40頁18頁,結(jié)構(gòu)數(shù)

9、組存儲(chǔ)在連續(xù)的內(nèi)存區(qū)域中,內(nèi)存大小為structperson /*數(shù)組中元素的數(shù)組成員的一個(gè)字符*/,共40頁19頁,10.2.3結(jié)構(gòu)數(shù)組初始化,struct student int num; 卡爾名稱20; 卡爾斯克; 英格; 卡爾阿德德爾30; stu3=111、Li、m、18、Dalian、也可以采用: struct student int num; 結(jié)構(gòu)步驟=、 初始化結(jié)構(gòu)數(shù)組的一般形式是在定義數(shù)組后面添加:=初始值表列,修訂第40頁20頁,例如設(shè)有3個(gè)候選人,要求每次各輸入一個(gè)得票候選人的名字,最后輸出各人的得票結(jié)果。 包括字串. hstructpersoncharname 20;

10、進(jìn)度計(jì)數(shù); 第三層=“李”、0、“張”、0、“劉”、0; 主() inti,j; char leader _名稱20; for(i=1; i=10; (I )掃描(“% s”、標(biāo)題名稱); for(j=0; j3; (j )標(biāo)簽名稱(標(biāo)簽名稱)=0)標(biāo)簽計(jì)數(shù)。 for(i=0; i3; I )打印(“%5s 3360 % dn”、標(biāo)題名稱、標(biāo)題計(jì)數(shù)); 40頁面21頁面,例如,創(chuàng)建30個(gè)學(xué)生的信息狀態(tài)的模式搜索計(jì)程儀項(xiàng),并且每個(gè)學(xué)生的信息包括xh (學(xué)號(hào))、xb (性別)、cj (成績(jī))和xm (姓名)。 要求: (1)輸入30名學(xué)生信息;(2)輸出男學(xué)生中成績(jī)超過90的學(xué)生的xm、xb、cj

11、。 第40頁,第22頁,結(jié)構(gòu)步驟。 卡拉西b; int cj; 卡爾xm20; 主()結(jié)構(gòu)步驟30; 英特爾; for(i=0; I=90 )打印機(jī)(% s、%c、%dn、stui.xm、stui.xb、stui.cj ); 修訂第40頁第23頁,10.3結(jié)構(gòu)指針變量,結(jié)構(gòu)和指針之間的關(guān)系:指向以指針為結(jié)構(gòu)成員的結(jié)構(gòu)的指針(稱為結(jié)構(gòu)變量的指針)。 結(jié)構(gòu)變量指針說明的一般形式: struct結(jié)構(gòu)類型名*結(jié)構(gòu)指針變量名稱例如:struct date *pdate,today; pdate=、校正第40頁第24頁,指針網(wǎng)站數(shù)據(jù)庫(kù)操作中的成員:使用運(yùn)算符“-”來構(gòu)成。 結(jié)構(gòu)指針-成員名稱“-”運(yùn)算符優(yōu)

12、先級(jí)最高(級(jí)別15 ),從左向右合并。注意:有四種運(yùn)算符在習(xí)語言中優(yōu)先級(jí)為15:().-例如, p-成員名稱或(*p ) .分析成員名稱、p-n所指向的結(jié)構(gòu)變量中的成員n的值p-n得到p所指向的結(jié)構(gòu)變量中的成員n的值后加上1的運(yùn)算(p-n ) 相當(dāng)于: (p-n )合訂第40頁第25頁,例如: main() struct student long int num; 卡爾名稱20; 卡爾斯克; 結(jié)構(gòu)步驟stu _ 1; 結(jié)構(gòu)步驟* p; p=史蒂文(stu _1. name,名字); stu_1.sex=W; 打印機(jī)(: % ldn名稱sn sex 3360 % cn )、stu_1.num、s

13、tu_1.name、stu _ 1打印機(jī)(: % ldn名稱sn sex 3360 % cn )。 請(qǐng)查一下計(jì)程儀鼓有沒有問題。 definen4#包含stdio.h結(jié)構(gòu)機(jī)械名稱20。 英格; 個(gè)人=“李”、18、“王”、19、“張”、20、“孫”、22; 主() struct man * q、*p; 英寸、米=0; p=人員; for (i=0; iage) q=p; m=q-age; 打印機(jī)(% s、%d、q -名稱、q-age ); 合訂第40頁第27頁,朗讀程序:main() struct student int num; 英格; structstudentstu3=1000、20、1

14、001、19、1003、23; 結(jié)構(gòu)步驟* p; p=stu; 打印機(jī)(“% dn”、(*p ).num ); 輸出結(jié)果: 1000,修訂第40頁第28頁,例如: printf(%d,man.birthday.year ); 傳遞結(jié)構(gòu)成員的值scanf(%d )、傳遞結(jié)構(gòu)成員的地址、10.4結(jié)構(gòu)類型數(shù)據(jù)在函數(shù)之間的傳遞、結(jié)構(gòu)與函數(shù)的關(guān)系、在將結(jié)構(gòu)成員傳遞到函數(shù)的函數(shù)之間傳遞整個(gè)結(jié)構(gòu)的結(jié)構(gòu)地址(指針)傳遞到函數(shù)。 喀嚦聲,將結(jié)構(gòu)成員傳遞給函數(shù)。 將結(jié)構(gòu)成員傳遞給函數(shù)的方法與傳遞簡(jiǎn)單變量的方法相同。 在函數(shù)之間傳遞成員值的方法。 在函數(shù)之間傳遞成員地址。 合訂第40頁第29頁,結(jié)構(gòu)為整體,在函數(shù)之間傳遞:以結(jié)構(gòu)變量為形式殘奧儀表的函數(shù)的上限值為結(jié)構(gòu)型。 然后在函數(shù)之間傳遞整個(gè)結(jié)構(gòu)。 合訂第40頁第30頁,# includestdio.hstructstudentintnum; 卡爾名稱20; 浮球3; stu=20701、lili、67.5、88、79.6。 語音打印(基本打印* p )打印機(jī)(% d %

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論