c程序設(shè)計(jì) 第11章 結(jié)構(gòu)體、聯(lián)合體與枚舉類型

上傳人:san****019 文檔編號:22478430 上傳時間:2021-05-26 格式:PPT 頁數(shù):56 大?。?.17MB
收藏 版權(quán)申訴 舉報 下載
c程序設(shè)計(jì) 第11章 結(jié)構(gòu)體、聯(lián)合體與枚舉類型_第1頁
第1頁 / 共56頁
c程序設(shè)計(jì) 第11章 結(jié)構(gòu)體、聯(lián)合體與枚舉類型_第2頁
第2頁 / 共56頁
c程序設(shè)計(jì) 第11章 結(jié)構(gòu)體、聯(lián)合體與枚舉類型_第3頁
第3頁 / 共56頁

下載文檔到電腦,查找使用更方便

14.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《c程序設(shè)計(jì) 第11章 結(jié)構(gòu)體、聯(lián)合體與枚舉類型》由會員分享,可在線閱讀,更多相關(guān)《c程序設(shè)計(jì) 第11章 結(jié)構(gòu)體、聯(lián)合體與枚舉類型(56頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、C程序設(shè)計(jì)主講:賀細(xì)平電話:13755162334E-mail:辦公室:六教207 課程地位與學(xué)習(xí)方法v課程地位:在軟件設(shè)計(jì)中具有基礎(chǔ)性地位培養(yǎng)計(jì)算思維-用計(jì)算機(jī)求解問題時特有的思維方式。“C通百通”!v編程高手秘笈上機(jī)思考上機(jī)思考程序設(shè)計(jì)是“練”出來的!v考核辦法:平時上機(jī)實(shí)踐(60%)+期終閉卷筆試(40%) 第1講我與程序設(shè)計(jì)有個美麗的約會-初識C語言v課程重要性學(xué)習(xí)方法v編程入門知識v賦值語句的用法vif判斷的用法v實(shí)例:比大小 程序設(shè)計(jì)入門知識v計(jì)算機(jī)程序的執(zhí)行過程:v馮.諾依曼計(jì)算機(jī)模型數(shù)據(jù)的二進(jìn)制表示存儲程序、自動執(zhí)行、順序串行v程序是怎樣煉成的?編寫代碼編譯執(zhí)行程序修改程序是“

2、改”出來的!v其他 應(yīng)用程序與操作系統(tǒng)的關(guān)系應(yīng)用程序與內(nèi)存、外存的關(guān)系 初識C語言v賦值 賦值運(yùn)算符“=”a=b+c; 先讀取b和c的值并作加法運(yùn)算,將結(jié)果寫到變量a中取。計(jì)算機(jī)存取數(shù)據(jù)的特點(diǎn):v無論多少次“讀”操作不會改變被讀數(shù)據(jù)v寫操作將使用新的值覆蓋原來的值,原來的數(shù)據(jù)丟失。v比較與判斷If語句的用法常用的比較運(yùn)算符:, = , = 應(yīng)用實(shí)例v求兩個數(shù)的和v交換兩個變量的值v求2個數(shù)中的較大值v求3個數(shù)中的最大值v求4個數(shù)、5個數(shù)v思考:求100個數(shù),1000個數(shù)中的最大值。 第2講機(jī)器擅長(重復(fù)和存儲)-循環(huán)與數(shù)組(初步)v賦值運(yùn)算符vfor循環(huán)的運(yùn)用v數(shù)組的基本用法 第3講:初識程序

3、的魅力 -機(jī)器擅長之循環(huán)v1、求2個數(shù)的最大值,求5個數(shù)的最大值,求100個數(shù)的最大值,到n個數(shù)中的最大值。v2、如何從重復(fù)語句過渡到循環(huán)語句。v3、for語句的4個要素:變量初識化,循環(huán)條件,循環(huán)變量改變,循環(huán)體。v4、實(shí)例:求最高分v5、實(shí)例:倒計(jì)時v6、實(shí)例:簡單統(tǒng)計(jì) 第4講:復(fù)雜邏輯的基礎(chǔ)-循環(huán)與判斷的結(jié)合(1)v 1:循環(huán)的基本應(yīng)用、累加算法的實(shí)現(xiàn) :實(shí)例:游樂園的收入、證件的連續(xù)編號、大獎賽計(jì)分、簡單統(tǒng)計(jì)v 2:for 與if配合:龜兔賽跑v 3: for循環(huán)的嵌套:關(guān)鍵:理解內(nèi)外循環(huán)的含義v 4:雙重循環(huán)舉例:九九乘法表 第5講 我想與我得(進(jìn)階)- 分支與循環(huán)的綜合運(yùn)用(2)v

4、1:for 與if配合v2:雙精度double型的保留小數(shù)問題,整型到double型的轉(zhuǎn)換問題。v3:循環(huán):證件的連續(xù)編號、龜兔賽跑、性別比v4:雙重循環(huán)舉例:九九乘法表 第6講:我想即我得(復(fù)雜邏輯表達(dá)之一)-循環(huán)與分支的運(yùn)用v總結(jié)實(shí)驗(yàn)課上機(jī)情況v 1:分支結(jié)構(gòu)的串聯(lián)和嵌套:學(xué)生成績的等級,有這樣的日期嗎?閏年的判斷。v 2:循環(huán)結(jié)構(gòu)的串聯(lián)和嵌套:九九乘法表的四種表現(xiàn)形式。v 3:圖案的輸出:實(shí)心矩形圖案,空心矩形圖案,橫臥的空心菱形v總結(jié):循環(huán)的嵌套和if的嵌套:串聯(lián)表示前后的順序關(guān)系,而嵌套表示邏輯的遞進(jìn)和乘性關(guān)系。 v展示曲線圖案v課后思考題:豎立的空心菱形、余弦曲線圖案,余弦與相交直

5、線的圖案,圓的圖案。 第7講:我想即我得(復(fù)雜邏輯表達(dá)之二)-循環(huán)與分支的運(yùn)用v 1:圖案的輸出:實(shí)心矩形圖案,空心矩形圖案,橫臥的空心菱形。圖案輸出的原理:1:必須從左到右邊,從上到下的順序輸出。2:需要定位從屏幕的中間輸出的話,必須使用空格跳格之類的字符(不可見)使光標(biāo)到達(dá)指定位置。v 2:break的用法:素性測試。方法一:理解如何利用break語句執(zhí)行后,循環(huán)變量與終點(diǎn)的關(guān)系來判斷是否為素?cái)?shù)。 方法二:使用標(biāo)志變量v思考:如何提高素性測試的運(yùn)行速度-時間效率。減少循環(huán)次數(shù),改變算法。 第8講:機(jī)器的擅長之二-批量數(shù)據(jù)處理的利器-數(shù)組v數(shù)組的適用場合:需要存儲并處理一組相同類型數(shù)據(jù)。v特

6、點(diǎn):1、能存儲大量數(shù)據(jù)v 2、訪問速度快(讀寫數(shù)組元素速度快)。通過ai訪問a數(shù)組中第i個元素。v 3、占用內(nèi)存中連續(xù)的存儲空間。是大量消耗內(nèi)存空間的主要因素。程序的效率的兩方面之一:時間效率和空間效率。v使用原則:盡量不用,盡量少用。 v實(shí)例:蛟龍翻身、一哥是何人、成績分布v一維數(shù)組有“表”的作用:超市購物、學(xué)生成績的等級、有這樣的日期嗎? 第9講:機(jī)器的擅長之二-批量數(shù)據(jù)處理的利器-二維數(shù)組v利用一維數(shù)組“表”的作用,可以簡化代碼的編寫過程。實(shí)例:超市購物中的會員等級、這個月有多少天,成績的等級(用switch-case實(shí)現(xiàn),用“表”實(shí)現(xiàn))。v圖像的疊加v圖像翻轉(zhuǎn)v圖像旋轉(zhuǎn)v課后作業(yè):成績

7、的標(biāo)準(zhǔn)差 第10講:數(shù)組的應(yīng)用及其他v1:二維數(shù)組的應(yīng)用:東海盤龍。知識點(diǎn):while循環(huán)的應(yīng)用。前置加和后置加運(yùn)算。v2:switch-case表達(dá)能力受限,完全可被if-else語句替代。實(shí)例:這個月有多少天?學(xué)生成績的等級,超市購物。v3:while,do-while循環(huán)的運(yùn)用:完全可以用for循環(huán)來實(shí)現(xiàn)。分式化簡(輾轉(zhuǎn)相除法求最大公約數(shù))。v4:?:運(yùn)算符。v思路說明:高次方的尾數(shù)、這么多0! 補(bǔ)充:我想即我得(復(fù)雜邏輯表達(dá)之二)-循環(huán)與分支的運(yùn)用v1:標(biāo)志變量的運(yùn)用。素性測試與素?cái)?shù)篩法。v圖示break,continue的執(zhí)行過程。v2:switch-case表達(dá)能力受限,完全可被i

8、f-else語句替代。實(shí)例:這個月有多少天?學(xué)生成績的等級,超市購物。v3:while,do-while循環(huán)的運(yùn)用完全可以用for循環(huán)來實(shí)現(xiàn)。v4:?:運(yùn)算符。 第11講 文本的處理-字符串的存儲與處理v 1: 字符的存儲和表示:ASCII碼表。中文的雙字節(jié)編碼:Windows-936,GBK,GB2312都是兼容的的雙字節(jié)編碼,還有Unicode的UTF-8,UTF-16等實(shí)現(xiàn)形式。v 2:ASCII碼表的利用:特殊字符,空字符、換行(10,LF)、回車(13,CR),空格,跳格。數(shù)字字符:0,1,2,.,9; 大寫字母A-Z,小寫字母a-Z。舉例:順序輸出0-9,A-Z,a-z。使用原樣輸

9、出與使用循環(huán)輸出。應(yīng)用:大小寫的轉(zhuǎn)換。字符串與數(shù)字之間的轉(zhuǎn)換。理解累加過程:value=value*10+(ch-0),轉(zhuǎn)換的數(shù)學(xué)原理:坐標(biāo)平移。 v 3:實(shí)例:選鉆石礦。何時清0,何時累加。v 4:演示:窮舉所有的中文字符的輸出。(注意地位和高位字節(jié)都應(yīng)該從128開始到255,而不是從0開始到128) 選鉆石礦Description大家都知道鉆石晶瑩剔透、有棱有角、非常漂亮,代表著高貴、純潔和永恒。可能你們知道嗎?鉆石并非天生就這么漂亮,這些鉆石來自非常辛苦的大海撈針式的選礦工作和艱苦巨細(xì)的打磨得來的?,F(xiàn)在,我們就來試試選礦的工作,假設(shè)我們要從一堆包含很多大大小小鉆石塊的礦中篩選出所有鉆石。

10、用一個字符串表示一堆鉆石礦。非數(shù)字的字符表示泥土、巖石等雜質(zhì),一串連續(xù)的數(shù)字表示一小塊鉆石的價值(也可以看成是鉆石的大小,因?yàn)殂@石的大小與價值直接相關(guān)的)。將所有的數(shù)字相加,即為本堆礦物所篩選的鉆石總價值。Input在一行中輸入一個字符串,行的末尾有一個回車。字符串的長度大于等于1,小于等于106;Output輸出鉆石總價值。Sample Input adsf32kg! /以空格回車作為字符串輸入的結(jié)束。gets(str); /以回車作為字符串輸入的結(jié)束。ch=getchar()與scanf(“%c”,)效果相同。v實(shí)例:英漢字典之超水版,大整數(shù)的加法 ,門牌號碼之短數(shù)版,sprintf()函

11、數(shù)的用法,sscanf()。v思路講解:短信中提取號碼 v思考:門牌號碼之長數(shù)版 第14講 分工合作的利器-設(shè)計(jì)模塊化之函數(shù)(1)v函數(shù)的概念:具有一定功能的代碼模塊。v函數(shù)的模型:黑盒模型(有輸入、有輸出、能實(shí)現(xiàn)一定功能,但是不用關(guān)心其內(nèi)部實(shí)現(xiàn)和結(jié)構(gòu))v兩個層次的軟構(gòu)件:函數(shù)、類(封裝了函數(shù)和數(shù)據(jù))。v構(gòu)建新軟件的方法論:“揚(yáng)棄”-拿來主義,站在前人的肩膀上 + 為解決新問題而必須的開拓和創(chuàng)造。 拿來主義:庫函數(shù)的使用要點(diǎn):函數(shù)名、功能、參數(shù)的類型和含義,返回值的類型和含義。創(chuàng)造開拓:自己設(shè)計(jì)并實(shí)現(xiàn)函數(shù)。 第14講 分工合作的利器-設(shè)計(jì)模塊化之函數(shù)(1)v設(shè)計(jì)原則:具有一定的功能,具有相對的

12、獨(dú)立性,具有清晰的接口。v“先聲明后使用”使用函數(shù)的語法要求。v函數(shù)在軟件工程中意義:代碼簡潔、邏輯清晰、便于調(diào)試、自頂向下設(shè)計(jì),模塊間分工合作,代碼重用,快速開發(fā)。v簡單實(shí)例:分式的化簡(求最大公約數(shù))v sin函數(shù)的實(shí)現(xiàn): sinx=x-x3/3!+x5/5!-x7/7!+x9/9!- (無窮級數(shù)的形式) 第15講 分工合作的利器-設(shè)計(jì)模塊化之函數(shù)(2)v 1:函數(shù)的參數(shù)傳遞過程,實(shí)參-形參,值的復(fù)制過程。v 2:講解全局變量和局部變量和靜態(tài)變量的區(qū)別。v 3:實(shí)例講解:sin函數(shù)的實(shí)現(xiàn):sinx=x-x3/3!+x5/5!-x7/7!+x9/9!-(這里就寫成無窮級數(shù)的形式了。) 其中,

13、簡單直接法解決:分子和分母分開計(jì)算,然后再除,這樣可能導(dǎo)致分子、分母先溢出了。解決方法:分子除以分母之后,然后再乘。最后,利用x的2周期,將x變換到2周期內(nèi)。 第16講 分工合作的利器-設(shè)計(jì)模塊化之函數(shù)(3)v1:算法思想講解:實(shí)例講解:東海盤龍(格式版)v2:sscanf(str,%s,.)的運(yùn)用。v3:算法效率問題:利用計(jì)算過程中已經(jīng)得到的結(jié)果,盡量避免重復(fù)計(jì)算。v 算法的時間和空間效率問題。v4:素?cái)?shù)有多少。 第9講 分工合作的利器-設(shè)計(jì)模塊化之函數(shù)(1)v 1:函數(shù)相關(guān)概念:先定義后使用。參數(shù)的類型與個數(shù)必須正確。返回值是所表示的含義。形式參數(shù)與實(shí)際參數(shù)的傳遞過程。v 2:如何設(shè)計(jì)函數(shù)

14、:設(shè)計(jì)函數(shù)某塊的原則:具有一定的功能,具有相對的獨(dú)立性,具有清晰地接口。v 3:實(shí)例講解:公歷萬年歷。 第11講 :程序之美 函數(shù)的遞歸(1)v1:遞歸的概念:函數(shù)自身調(diào)用自身。原問題求解方式與子問題相似(此為“遞”)當(dāng)子問題的規(guī)模小到一個特定程度時問題的解是已知的。(此為“歸”)v2:遞歸舉例:Fibonacci數(shù)列,階乘,求和、正反序輸出一組數(shù)據(jù),選擇排序。 第12講 :程序之美 函數(shù)的遞歸(2)v遞歸與非遞歸(循環(huán))的區(qū)別:遞歸方式的實(shí)現(xiàn)代碼相對簡潔,但是每次遞歸但需要有一定的開銷,效率有損失,并且遞歸的深度不能過大,否則堆棧溢出。循環(huán)方式的實(shí)現(xiàn)相對較復(fù)雜,但是運(yùn)行效率高,不會有堆棧的溢

15、出。 v本次小結(jié)理解遞歸函數(shù)適用的場合。清楚遞歸調(diào)用的“遞”過程和“歸”過程。掌握遞歸函數(shù)的簡單應(yīng)用。 遞歸舉例:v1:猜猜有多少v2:生成全排列v3:折半查找v4:應(yīng)用實(shí)例:整存零取,全排列, 最大公約數(shù)。 第13講 :內(nèi)存地址的妙用(1) 指針的基本概念v 1:什么是指針:指針即內(nèi)存地址。v 2:變量,指針變量深入理解變量和指針變量v 3:指針變量的用法 0012FF740012FF750012FF760012FF770012FF780012FF790012FF7A0012FF7B0012FF7C 0A0012FF7D 000012FF7E 000012FF7F 000012FF80001

16、2FF810012FF820012FF83aa 0012FF740012FF750012FF760012FF770012FF78 CC0012FF79 CC0012FF7A CC0012FF7B CC0012FF7C 0A0012FF7D 000012FF7E 000012FF7F 000012FF800012FF810012FF820012FF83int b=a*2; b變量與指針變量v普通變量三要素變量名:v程序中通過名字引用它。v程序中變量名與其值直接關(guān)聯(lián),以直接尋址方式讀/寫變量。變量類型:v表示數(shù)據(jù)的需要占用的字節(jié)數(shù)v數(shù)據(jù)表示的范圍v數(shù)據(jù)所能進(jìn)行哪些運(yùn)算。vint型,double型,

17、char型變量所占內(nèi)存單元的起始地址:簡稱為變量的地址。v通過取地址運(yùn)算符a 0012FF740012FF750012FF760012FF770012FF78 140012FF79 000012FF7A 000012FF7B 000012FF7C 0A0012FF7D 000012FF7E 000012FF7F 000012FF800012FF810012FF820012FF83int b=a*2; pa變量與指針變量int a=10;int *pa;pa = a 0012FF740012FF750012FF760012FF770012FF78 7C0012FF79 FF0012FF7A 12

18、0012FF7B 000012FF7C 0A0012FF7D 000012FF7E 000012FF7F 000012FF800012FF810012FF820012FF83v指針變量三要素變量名:v程序中通過名字引用它。v程序中指針變量名與其所指向的值間接關(guān)聯(lián),以間接尋址方式讀寫所指向的變量。變量類型:表示它所指向的變量的數(shù)據(jù)類型。vint *型,double*型,char*型變量所占的內(nèi)存單元的起始編號:v即變量在內(nèi)存中的起始地址。v通過取地址運(yùn)算符得到這個起始地址。2個值v指針變量的值:即所指向變量的地址v它所指向的變量的值。通過間接尋址運(yùn)算符獲得。 pa變量與指針變量int a=10;

19、int *pa;pa = *pa= *pa+10; 0012FF740012FF750012FF760012FF770012FF78 7C0012FF79 FF0012FF7A 120012FF7B 000012FF7C 140012FF7D 000012FF7E 000012FF7F 000012FF800012FF810012FF820012FF83v指針變量三要素指針變量名:v程序中通過名字引用它。v程序中指針變量名與其所指向的值間接關(guān)聯(lián),以間接尋址方式讀寫所指向的變量。指針變量類型:表示它所指向的變量的數(shù)據(jù)類型。v int *型,double*型,char*型指針變量所占的內(nèi)存單元的起

20、始編號:v即變量在內(nèi)存中的起始地址。v通過取地址運(yùn)算符得到這個起始地址。 2個值v指針變量的值:即所指向變量的地址v它所指向的變量的值。通過間接尋址運(yùn)算符獲得。注意:在32位的操作系統(tǒng)中,任何類型的指針變量占用4個字節(jié)的內(nèi)存空間。即機(jī)器的尋址空間。a pa變量與指針變量int a=10;int *pa;pa = *pa= *pa+10;a 0012FF740012FF750012FF760012FF770012FF78 7C0012FF79 FF0012FF7A 120012FF7B 000012FF7C 0A0012FF7D 000012FF7E 000012FF7F 000012FF800

21、012FF810012FF820012FF830012FF7Cpa0012FF7C 10 10apa a2 a3a0a1數(shù)組與指針變量int a4;a0=1;a1=2;a2=3;a3=4; 0012FF74 010012FF75 000012FF76 000012FF77 000012FF78 020012FF79 000012FF7A 000012FF7B 000012FF7C 030012FF7D 000012FF7E 000012FF7F 000012FF80 040012FF81 000012FF82 000012FF83 00a2int a4;int *p;p=a;*p=1;*(p+

22、1)=2;*(p+2)=3;*(p+3)=4;int a4;int *p;p=a;*p=1;p+;*p=2;p+;*p=3;p+;*p=4 int a4;int *p;p=a;p0=1;p1=2;p2=3;p3=4; a重要概念:數(shù)組名是指針常量,它表示數(shù)組的起始地址。 數(shù)組與指針變量0012FF74 010012FF75 000012FF76 000012FF77 000012FF78 020012FF79 000012FF7A 000012FF7B 000012FF7C 030012FF7D 000012FF7E 000012FF7F 00 0012FF80 040012FF81 0000

23、12FF82 000012FF83 00int a4;int *p;p=a;*p=1;p+;*p=2;p+;*p=3;p+;*p=4 pint a4;int *p;p=a;for(i=0;i4;i+) *p=i+1; p+; a注意:每次p+移動4個字節(jié), 這是由p所指向的是整型數(shù)據(jù) 是4個字節(jié)決定的。 數(shù)組與指針變量0012FF74 a0012FF75 b0012FF76 c0012FF77 d0012FF78 e0012FF79 f0012FF7A g0012FF7B h0012FF7C i0012FF7D j0012FF7E k0012FF7F l 0012FF80 m0012FF81

24、n0012FF82 o0012FF83 p pchar a16;char *p;p=a;for(i=0;i16;i+) *p=a+i; p+; a注意:每次p+移動1個字節(jié), 這是由p所指向的是字符型數(shù)據(jù) 是1個字節(jié)決定的。 數(shù)組與指針變量0012FF74 a0012FF75 b0012FF76 c0012FF77 c0012FF78 d0012FF79 e0012FF7A f0012FF7B g0012FF7C h0012FF7D I0012FF7E j0012FF7F k 0012FF80 l0012FF81 k0012FF82 l0012FF83 mpchar a4;char *p;p=

25、a;for(i=0;i16;i+) *p=a+i; p+; a 注意:每次p+移動1個字節(jié), 這是由p所指向的是字符型數(shù)據(jù) 是1個字節(jié)決定的。 數(shù)組與指針變量0012FF74 a0012FF75 b0012FF76 c0012FF77 c0012FF78 d0012FF79 e0012FF7A f0012FF7B g0012FF7C h0012FF7D I0012FF7E j0012FF7F k 0012FF80 l0012FF81 k0012FF82 l0012FF83 mpchar a4;char *p;p=a;for(i=0;i16;i+) *p=a+i; p+; a 注意:每次p+移動

26、1個字節(jié), 這是由p所指向的是字符型數(shù)據(jù) 是1個字節(jié)決定的。 數(shù)組與指針變量0012FF74 a0012FF75 b0012FF76 c0012FF77 c0012FF78 d0012FF79 e0012FF7A f0012FF7B g0012FF7C h0012FF7D I0012FF7E j0012FF7F k 0012FF80 l0012FF81 k0012FF82 l0012FF83 mpchar a4;char *p;p=a;for(i=0;i16;i+) *p=a+i; p+; a 注意:每次p+移動1個字節(jié), 這是由p所指向的是字符型數(shù)據(jù) 是1個字節(jié)決定的。 第14講:內(nèi)存地址的

27、妙用(2) 指針作為函數(shù)參數(shù)v函數(shù)參數(shù)傳遞的2種方式。傳值調(diào)用:實(shí)參形參的單向傳遞,可以理解為“傳復(fù)印件”傳址調(diào)用:實(shí)參的雙向傳遞,可以理解為“傳原件”。本質(zhì)上都是傳遞一個數(shù)值的復(fù)制件。只不過傳值時的值是一個普通的變量值,而傳址時傳遞的是地址。v交換2個變量值的函數(shù)先不用函數(shù)實(shí)現(xiàn)用2種方法(復(fù)制值,復(fù)制地址的方法)交換2個變量的值 v注意事項(xiàng),定義多個指針變量必須重復(fù)寫*號。int *p1,*p1 (正確)Int *p1,p2;(只有p1是指針,p2是int型變量)理解scanf()中的v int c,d,t;v c=a; d=b;v t=c;c=d;d=t;v printf(a=%d,b=%

28、dn,a,b);v int *pa,*pb; v pa=v pb=v t=*pa; *pa=*pb; *pb=t;v printf(a=%d,b=%dn,a,b);v return 0;v 第15講:內(nèi)存地址的妙用(3) 指針變量在動態(tài)內(nèi)存分配中的應(yīng)用v數(shù)組:是內(nèi)存中開辟的地址連續(xù)的存儲空間v動態(tài)分配方式:舉例特點(diǎn):容量在運(yùn)行時確定。分配和回收耗時,存儲空間利用率高,能利用非連續(xù)小塊空間。能在運(yùn)行過程中動態(tài)地申請,動態(tài)地釋放。數(shù)據(jù)保存在堆區(qū)(heap) 生命期:申請成功后一直到釋放前,在何處申請對生命期沒有影響。必須由程序員負(fù)責(zé)釋放,否則存在內(nèi)存泄漏。v靜態(tài)的分配方式:舉例特點(diǎn):容量預(yù)先設(shè)定,

29、運(yùn)行時不能修改。分配速度快,存儲空間利用率低,不能利用非連續(xù)的小塊空間。全局?jǐn)?shù)組:v開辟在進(jìn)程的數(shù)據(jù)區(qū)(data segment),可以較大。v生命期:在主函數(shù)運(yùn)行前分配,主函數(shù)返回后釋放。局部數(shù)組:即任何函數(shù)內(nèi)定義的靜態(tài)數(shù)組,在棧區(qū)(stack)。v生命期:函數(shù)運(yùn)行時分配,函數(shù)返回后釋放。 第16講:動態(tài)內(nèi)存分配的應(yīng)用:二維數(shù)組的動態(tài)生成與銷毀 v1:蛟龍翻身v2:二維數(shù)組的動態(tài)分配用一維數(shù)組模擬用指針數(shù)組和動態(tài)分配的一維數(shù)組模擬v實(shí)例:圖像的翻轉(zhuǎn)和旋轉(zhuǎn) 第17講:軟件構(gòu)件化的基礎(chǔ)之?dāng)?shù)據(jù)的結(jié)盟-結(jié)構(gòu)體v1:結(jié)構(gòu)體的概念和應(yīng)用場合v2:結(jié)構(gòu)體的用法:v (1)設(shè)計(jì)自定義數(shù)據(jù)類型:結(jié)構(gòu)體,v (

30、2)使用結(jié)構(gòu)體類型定義結(jié)構(gòu)體變量v (3)讀寫結(jié)構(gòu)體變量:讀寫結(jié)構(gòu)體變量的成員v3:應(yīng)用舉例:簡單電話薄 第18講環(huán)環(huán)相扣的結(jié)構(gòu)體-鏈表初步v 1:鏈表的概念和用途v 2:鏈表的結(jié)點(diǎn)類型設(shè)計(jì)v 3:鏈表的常用操作的實(shí)現(xiàn)v 4:應(yīng)用舉例:誰是幸運(yùn)者 第19講 結(jié)構(gòu)體的排序(基礎(chǔ))v 1:選擇排序與冒泡排序v 2:結(jié)構(gòu)體上的選擇排序與冒泡排序v 3:舉例,學(xué)生信息的排序 v 4: 庫函數(shù)qsort的用法。第20講 結(jié)構(gòu)體的排序(進(jìn)階)v 1:選擇排序v 2:冒泡排序 第21講:數(shù)據(jù)的持久化-文件(1)v文件:計(jì)算機(jī)持久化存儲數(shù)據(jù)的基本單位。v文件類型千變?nèi)f化 vs 文本文件與二進(jìn)制文件v常用的文件

31、讀寫操作。打開(新建)文件,關(guān)閉文件。從文件讀數(shù)據(jù)向文件寫數(shù)據(jù)文件讀/寫指針的定位操作。文件的刪除。v舉例:源代碼文件添加行號 第22講:數(shù)據(jù)的持久化-文件(2)v文件:計(jì)算機(jī)持久化存儲數(shù)據(jù)的基本單位。v文件類型千變?nèi)f化 vs 文本文件與二進(jìn)制文件v常用的文件讀寫操作。打開(新建)文件,關(guān)閉文件。從文件讀數(shù)據(jù)向文件寫數(shù)據(jù)文件讀/寫指針的定位操作。文件的刪除。v二進(jìn)制文件讀寫舉例:獲取圖片或mp3文件信息 第23講:深入到bit的運(yùn)算-位運(yùn)算v位(bit):字節(jié)byte是計(jì)算機(jī)存儲管理的基本單位。1 byte = 8 bitsv位運(yùn)算的特點(diǎn):運(yùn)算速度快:相比乘2除2運(yùn)算。操作硬件的需要:設(shè)置或讀取某些特殊的硬件端口數(shù)據(jù)或硬件標(biāo)志位寄存器或緩沖區(qū)的數(shù)據(jù)。v位運(yùn)算包括:&,| ,v舉例:循環(huán)移位

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!