版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第七章 結(jié)構(gòu)體與共用體,7.1.1 結(jié)構(gòu)體結(jié)構(gòu)體變量的定義,隨著要解決的實(shí)際問(wèn)題的逐步復(fù)雜,以前定義數(shù)據(jù)的 類型,如字符型、整型、實(shí)型、數(shù)組等已感到不方便。 如要描述一個(gè)學(xué)生的特征,需要學(xué)號(hào)、姓名、性別、成 績(jī)等,它不能用一種簡(jiǎn)單的數(shù)據(jù)類型來(lái)定義。這就引入 了結(jié)構(gòu)體的慨念,可以把學(xué)生的特征用一個(gè)結(jié)構(gòu)體來(lái)表 示,它由若干簡(jiǎn)單的數(shù)據(jù)類型組成。如: struct student /* 定義一個(gè)名為student 的結(jié)構(gòu)體 */ char name20; /* 該結(jié)構(gòu)體包括成員:姓名 */ char sex6; /* 性別 */ char num10; /* 學(xué)號(hào) */ float score; /*
2、 成績(jī) */ ;,7.1.1 結(jié)構(gòu)體結(jié)構(gòu)體變量的定義,定義了結(jié)構(gòu)體,相當(dāng)于定義了一種數(shù)據(jù)類型,象基本 數(shù)據(jù)類型要定義變量一樣,結(jié)構(gòu)體也要定義結(jié)構(gòu)體變量。 有三種形式定義結(jié)構(gòu)體變量: 1 先定義結(jié)構(gòu)體,再定義結(jié)構(gòu)體變量 struct student /*定義結(jié)構(gòu)體 */ char name20; char sex6; char num10; float score; ; struct student student1,student2;/*定義兩個(gè)結(jié)構(gòu)體變量 */ /* student1 和 student2 */,7.1.1 結(jié)構(gòu)體結(jié)構(gòu)體變量的定義,2 定義結(jié)構(gòu)體的同時(shí) 3 直接定義結(jié)構(gòu)體變量
3、 定義結(jié)構(gòu)體變量 struct student struct char name20; char name20; char sex6; char sex6; char num10; char num10; float score; float score; student1,student2; student1,student2; 該形式未定義結(jié)構(gòu)體名, 故除直接定義外,不能再 定義結(jié)構(gòu)體變量 說(shuō)明:結(jié)構(gòu)體成員還可以是結(jié)構(gòu)體。,7.1.2 結(jié)構(gòu)成員的引用,引用方式: 結(jié)構(gòu)體變量名. 結(jié)構(gòu)體成員名 如: student1.score=90.5; 9-1-2a.c 若是結(jié)構(gòu)體嵌套其引用方式為: 結(jié)
4、構(gòu)體變量名1.結(jié)構(gòu)體變量名2.結(jié)構(gòu)體成員名 如: student1.birthday.year=1982; 9-1-2b.c,7.1.3 結(jié)構(gòu)體變量的初始化,根據(jù)結(jié)構(gòu)體定義依此給出初始值,如: struct student char name20; char sex6; char num10; float score; student1=“丁紅”,“女”, “20010770109”,90.0; 也可: struct student . . ; struct student student1=“丁紅”,“女”, “20010770109”,90.0;,7.2 結(jié)構(gòu)數(shù)組,在前述的學(xué)生結(jié)構(gòu)體中,若
5、要定義30個(gè)結(jié)構(gòu)體變量,雖 可用student1,student2.student30 定義,但不方便。 用結(jié)構(gòu)數(shù)組定義就方便了: struct student char name20; char sex6; char num15; float score; ; struct student stud30; 這就定義了有30個(gè)元素的結(jié)構(gòu)數(shù)組。 9-2.c,7.3 結(jié)構(gòu)指針,結(jié)構(gòu)體指針變量用于存放結(jié)構(gòu)體變量(或數(shù)組)所占內(nèi)存 單元的首地址。結(jié)構(gòu)體指針要先定義、賦值后再使用,如: struct student char name20; char sex6; char num15; int scor
6、e3; stud; /* 定義結(jié)構(gòu)體及結(jié)構(gòu)體變量 */ struct student *s; /* 定義結(jié)構(gòu)指針 */ s= /* 給結(jié)構(gòu)體指針賦值 */ 可用如下方法訪問(wèn)結(jié)構(gòu)體成員: (*s).name (*s).sex (*s).num (*s).scorej 圓括號(hào)不能省,因?yàn)槌蓡T運(yùn)算符優(yōu)先級(jí)高于指針運(yùn)算符。,7.3 結(jié)構(gòu)指針,由于用(*).name形式不方便,C程序引入了指向結(jié)構(gòu)體 成員運(yùn)算符“-”。引用結(jié)構(gòu)體成員可用以下形式: s-name s-sex s-num s-scorej 在使用結(jié)構(gòu)指針時(shí)要注意運(yùn)算符的優(yōu)先級(jí),以下運(yùn)算符 優(yōu)先級(jí)由高到低: 高 低 ( ) - . + - *
7、 /* 2字節(jié) */ float b; /* 4字節(jié) */ char c; /* 1字節(jié) */ double d; /* 8字節(jié) */ value; /* 定義一個(gè)共用體變量value占8字節(jié) */ 共用體成員的引用方法與結(jié)構(gòu)體成員的引用方法一樣。,7.4.1 結(jié)構(gòu)體變量作為函數(shù)的參數(shù),把結(jié)構(gòu)體變量作為實(shí)參傳給形參、或是把結(jié)構(gòu)體變量 的成員作為實(shí)參傳遞給形參,都是傳值調(diào)用,在被調(diào)用 函數(shù)中改變的值,不會(huì)上傳到調(diào)用函數(shù)。這與簡(jiǎn)單變量 作實(shí)參的情形是一樣的。,7.4.2 結(jié)構(gòu)體變量的地址作為形參,用結(jié)構(gòu)體變量的地址作為實(shí)參代替相應(yīng)的形參,這是 傳址調(diào)用。在被調(diào)用函數(shù)中改變了地址中的值,則調(diào)用 函數(shù)中的值也改變了。 但是應(yīng)該記住,地址的傳遞也是單向的,即只能由調(diào) 用函數(shù)傳給被調(diào)函數(shù)。因此,試圖通過(guò)改變被調(diào)函數(shù)的 地址來(lái)改變調(diào)用函數(shù)中的值,
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 重慶市潼南區(qū)202-2026學(xué)年九年級(jí)上學(xué)期期末語(yǔ)文試題(含答案)(含解析)
- 2026福建福州市水路運(yùn)輸應(yīng)急保障中心編外人員招聘1人備考題庫(kù)及答案詳解1套
- 2026浙江紹興市產(chǎn)融科技服務(wù)有限公司項(xiàng)目制人員招聘2人備考題庫(kù)及完整答案詳解一套
- 畜禽幼崽保育與飼養(yǎng)技術(shù)手冊(cè)
- 2026西北工業(yè)大學(xué)計(jì)算機(jī)學(xué)院計(jì)算與藝術(shù)交叉研究中心非事業(yè)編制人員招聘1人備考題庫(kù)(陜西)附答案詳解
- 2026海南??谑旋埲A區(qū)公費(fèi)師范生招聘2人備考題庫(kù)參考答案詳解
- 2026年影視后期剪輯特效制作課程
- 2026年1月浙江省高考(首考)化學(xué)試題(含標(biāo)準(zhǔn)答案及解析)
- 超重失重課件
- 職業(yè)噪聲暴露的健康管理路徑
- 四川省遂寧市2026屆高三上學(xué)期一診考試英語(yǔ)試卷(含答案無(wú)聽(tīng)力音頻有聽(tīng)力原文)
- 福建省寧德市2025-2026學(xué)年高三上學(xué)期期末考試語(yǔ)文試題(含答案)
- 建筑施工行業(yè)2026年春節(jié)節(jié)前全員安全教育培訓(xùn)
- 2026屆高考語(yǔ)文復(fù)習(xí):小說(shuō)人物形象復(fù)習(xí)
- 2026年山東省煙草專賣局(公司)高校畢業(yè)生招聘流程筆試備考試題及答案解析
- 八年級(jí)下冊(cè)《昆蟲(chóng)記》核心閱讀思考題(附答案解析)
- 2025年中職藝術(shù)設(shè)計(jì)(設(shè)計(jì)理論)試題及答案
- 鐵路交通法律法規(guī)課件
- 2025年體育行業(yè)專家聘用合同范本
- 對(duì)于尼龍件用水煮的原因分析
- ECMO患者血糖控制與胰島素泵管理方案
評(píng)論
0/150
提交評(píng)論