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

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

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

14.9 積分

下載資源

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

資源描述:

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

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

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

3、的魅力 -機(jī)器擅長(zhǎng)之循環(huán)v1、求2個(gè)數(shù)的最大值,求5個(gè)數(shù)的最大值,求100個(gè)數(shù)的最大值,到n個(gè)數(shù)中的最大值。v2、如何從重復(fù)語(yǔ)句過(guò)渡到循環(huán)語(yǔ)句。v3、for語(yǔ)句的4個(gè)要素:變量初識(shí)化,循環(huán)條件,循環(huán)變量改變,循環(huán)體。v4、實(shí)例:求最高分v5、實(shí)例:倒計(jì)時(shí)v6、實(shí)例:簡(jiǎn)單統(tǒng)計(jì) 第4講:復(fù)雜邏輯的基礎(chǔ)-循環(huán)與判斷的結(jié)合(1)v 1:循環(huán)的基本應(yīng)用、累加算法的實(shí)現(xiàn) :實(shí)例:游樂(lè)園的收入、證件的連續(xù)編號(hào)、大獎(jiǎng)賽計(jì)分、簡(jiǎn)單統(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ù)問(wèn)題,整型到double型的轉(zhuǎn)換問(wèn)題。v3:循環(huán):證件的連續(xù)編號(hào)、龜兔賽跑、性別比v4:雙重循環(huán)舉例:九九乘法表 第6講:我想即我得(復(fù)雜邏輯表達(dá)之一)-循環(huán)與分支的運(yùn)用v總結(jié)實(shí)驗(yàn)課上機(jī)情況v 1:分支結(jié)構(gòu)的串聯(lián)和嵌套:學(xué)生成績(jī)的等級(jí),有這樣的日期嗎?閏年的判斷。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:需要定位從屏幕的中間輸出的話,必須使用空格跳格之類(lèi)的字符(不可見(jiàn))使光標(biāo)到達(dá)指定位置。v 2:break的用法:素性測(cè)試。方法一:理解如何利用break語(yǔ)句執(zhí)行后,循環(huán)變量與終點(diǎn)的關(guān)系來(lái)判斷是否為素?cái)?shù)。 方法二:使用標(biāo)志變量v思考:如何提高素性測(cè)試的運(yùn)行速度-時(shí)間效率。減少循環(huán)次數(shù),改變算法。 第8講:機(jī)器的擅長(zhǎng)之二-批量數(shù)據(jù)處理的利器-數(shù)組v數(shù)組的適用場(chǎng)合:需要存儲(chǔ)并處理一組相同類(lèi)型數(shù)據(jù)。v特

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

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

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

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

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

11、數(shù)的用法,sscanf()。v思路講解:短信中提取號(hào)碼 v思考:門(mén)牌號(hào)碼之長(zhǎng)數(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è)層次的軟構(gòu)件:函數(shù)、類(lèi)(封裝了函數(shù)和數(shù)據(jù))。v構(gòu)建新軟件的方法論:“揚(yáng)棄”-拿來(lái)主義,站在前人的肩膀上 + 為解決新問(wèn)題而必須的開(kāi)拓和創(chuàng)造。 拿來(lái)主義:庫(kù)函數(shù)的使用要點(diǎn):函數(shù)名、功能、參數(shù)的類(lèi)型和含義,返回值的類(lèi)型和含義。創(chuàng)造開(kāi)拓:自己設(shè)計(jì)并實(shí)現(xiàn)函數(shù)。 第14講 分工合作的利器-設(shè)計(jì)模塊化之函數(shù)(1)v設(shè)計(jì)原則:具有一定的功能,具有相對(duì)的

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

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

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

15、出。 v本次小結(jié)理解遞歸函數(shù)適用的場(chǎng)合。清楚遞歸調(diào)用的“遞”過(guò)程和“歸”過(guò)程。掌握遞歸函數(shù)的簡(jiǎn)單應(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程序中通過(guò)名字引用它。v程序中變量名與其值直接關(guān)聯(lián),以直接尋址方式讀/寫(xiě)變量。變量類(lèi)型:v表示數(shù)據(jù)的需要占用的字節(jié)數(shù)v數(shù)據(jù)表示的范圍v數(shù)據(jù)所能進(jìn)行哪些運(yùn)算。vint型,double型,

17、char型變量所占內(nèi)存單元的起始地址:簡(jiǎn)稱為變量的地址。v通過(guò)取地址運(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程序中通過(guò)名字引用它。v程序中指針變量名與其所指向的值間接關(guān)聯(lián),以間接尋址方式讀寫(xiě)所指向的變量。變量類(lèi)型:表示它所指向的變量的數(shù)據(jù)類(lèi)型。vint *型,double*型,char*型變量所占的內(nèi)存單元的起始編號(hào):v即變量在內(nèi)存中的起始地址。v通過(guò)取地址運(yùn)算符得到這個(gè)起始地址。2個(gè)值v指針變量的值:即所指向變量的地址v它所指向的變量的值。通過(guò)間接尋址運(yùn)算符獲得。 pa變量與指針變量int a=10;

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

20、始編號(hào):v即變量在內(nèi)存中的起始地址。v通過(guò)取地址運(yùn)算符得到這個(gè)起始地址。 2個(gè)值v指針變量的值:即所指向變量的地址v它所指向的變量的值。通過(guò)間接尋址運(yùn)算符獲得。注意:在32位的操作系統(tǒng)中,任何類(lèi)型的指針變量占用4個(gè)字節(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+移動(dòng)4個(gè)字節(jié), 這是由p所指向的是整型數(shù)據(jù) 是4個(gè)字節(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+移動(dòng)1個(gè)字節(jié), 這是由p所指向的是字符型數(shù)據(jù) 是1個(gè)字節(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+移動(dòng)1個(gè)字節(jié), 這是由p所指向的是字符型數(shù)據(jù) 是1個(gè)字節(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+移動(dòng)

26、1個(gè)字節(jié), 這是由p所指向的是字符型數(shù)據(jù) 是1個(gè)字節(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+移動(dòng)1個(gè)字節(jié), 這是由p所指向的是字符型數(shù)據(jù) 是1個(gè)字節(jié)決定的。 第14講:內(nèi)存地址的

27、妙用(2) 指針作為函數(shù)參數(shù)v函數(shù)參數(shù)傳遞的2種方式。傳值調(diào)用:實(shí)參形參的單向傳遞,可以理解為“傳復(fù)印件”傳址調(diào)用:實(shí)參的雙向傳遞,可以理解為“傳原件”。本質(zhì)上都是傳遞一個(gè)數(shù)值的復(fù)制件。只不過(guò)傳值時(shí)的值是一個(gè)普通的變量值,而傳址時(shí)傳遞的是地址。v交換2個(gè)變量值的函數(shù)先不用函數(shù)實(shí)現(xiàn)用2種方法(復(fù)制值,復(fù)制地址的方法)交換2個(gè)變量的值 v注意事項(xiàng),定義多個(gè)指針變量必須重復(fù)寫(xiě)*號(hào)。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) 指針變量在動(dòng)態(tài)內(nèi)存分配中的應(yīng)用v數(shù)組:是內(nèi)存中開(kāi)辟的地址連續(xù)的存儲(chǔ)空間v動(dòng)態(tài)分配方式:舉例特點(diǎn):容量在運(yùn)行時(shí)確定。分配和回收耗時(shí),存儲(chǔ)空間利用率高,能利用非連續(xù)小塊空間。能在運(yùn)行過(guò)程中動(dòng)態(tài)地申請(qǐng),動(dòng)態(tài)地釋放。數(shù)據(jù)保存在堆區(qū)(heap) 生命期:申請(qǐng)成功后一直到釋放前,在何處申請(qǐng)對(duì)生命期沒(méi)有影響。必須由程序員負(fù)責(zé)釋放,否則存在內(nèi)存泄漏。v靜態(tài)的分配方式:舉例特點(diǎn):容量預(yù)先設(shè)定,

29、運(yùn)行時(shí)不能修改。分配速度快,存儲(chǔ)空間利用率低,不能利用非連續(xù)的小塊空間。全局?jǐn)?shù)組:v開(kāi)辟在進(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í)分配,函數(shù)返回后釋放。 第16講:動(dòng)態(tài)內(nèi)存分配的應(yīng)用:二維數(shù)組的動(dòng)態(tài)生成與銷(xiāo)毀 v1:蛟龍翻身v2:二維數(shù)組的動(dòng)態(tài)分配用一維數(shù)組模擬用指針數(shù)組和動(dòng)態(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)用場(chǎng)合v2:結(jié)構(gòu)體的用法:v (1)設(shè)計(jì)自定義數(shù)據(jù)類(lèi)型:結(jié)構(gòu)體,v (

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

31、讀寫(xiě)操作。打開(kāi)(新建)文件,關(guān)閉文件。從文件讀數(shù)據(jù)向文件寫(xiě)數(shù)據(jù)文件讀/寫(xiě)指針的定位操作。文件的刪除。v舉例:源代碼文件添加行號(hào) 第22講:數(shù)據(jù)的持久化-文件(2)v文件:計(jì)算機(jī)持久化存儲(chǔ)數(shù)據(jù)的基本單位。v文件類(lèi)型千變?nèi)f化 vs 文本文件與二進(jìn)制文件v常用的文件讀寫(xiě)操作。打開(kāi)(新建)文件,關(guān)閉文件。從文件讀數(shù)據(jù)向文件寫(xiě)數(shù)據(jù)文件讀/寫(xiě)指針的定位操作。文件的刪除。v二進(jìn)制文件讀寫(xiě)舉例:獲取圖片或mp3文件信息 第23講:深入到bit的運(yùn)算-位運(yùn)算v位(bit):字節(jié)byte是計(jì)算機(jī)存儲(chǔ)管理的基本單位。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)移位

展開(kāi)閱讀全文
溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

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

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

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


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