![C語言中級(jí)教程+再談數(shù)組-7_第1頁](http://file4.renrendoc.com/view/f37cea73f8cc5835e08f1490b0f08e32/f37cea73f8cc5835e08f1490b0f08e321.gif)
![C語言中級(jí)教程+再談數(shù)組-7_第2頁](http://file4.renrendoc.com/view/f37cea73f8cc5835e08f1490b0f08e32/f37cea73f8cc5835e08f1490b0f08e322.gif)
![C語言中級(jí)教程+再談數(shù)組-7_第3頁](http://file4.renrendoc.com/view/f37cea73f8cc5835e08f1490b0f08e32/f37cea73f8cc5835e08f1490b0f08e323.gif)
![C語言中級(jí)教程+再談數(shù)組-7_第4頁](http://file4.renrendoc.com/view/f37cea73f8cc5835e08f1490b0f08e32/f37cea73f8cc5835e08f1490b0f08e324.gif)
![C語言中級(jí)教程+再談數(shù)組-7_第5頁](http://file4.renrendoc.com/view/f37cea73f8cc5835e08f1490b0f08e32/f37cea73f8cc5835e08f1490b0f08e325.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、C語言中級(jí)培訓(xùn)七、再談數(shù)組數(shù)組的概念是一種初級(jí)(語言級(jí))形式的數(shù)據(jù)結(jié)構(gòu)。數(shù)組的特點(diǎn)無名;連續(xù);有序;等大?。粋€(gè)數(shù)固定(除了在堆上分配);數(shù)組的本質(zhì)int A10;Ai=32;/此句說明了什么?充分使用了特點(diǎn):首址 + 偏移量是對(duì)元素進(jìn)行訪問的手段,但不是唯一的手段。數(shù)組的初始化對(duì)字符數(shù)組初始化時(shí),若指定元素個(gè)數(shù),則編譯器會(huì)自動(dòng)加尾0,否則不加(若沒有指定元素個(gè)數(shù),則不加)。但若采用雙引號(hào)初始化,則會(huì)加 。 char a110=a,b,c,d;char a2 = x,y,z;char a3 = sdfg;printf(%sn,a1);printf(%sn,a2);printf(%sn,a3);運(yùn)
2、行結(jié)果:abcdxyz亂碼sdfg函數(shù)中的數(shù)組不要以為函數(shù)尚未調(diào)用時(shí),數(shù)組也沒分配空間,若用參數(shù)為數(shù)組指定元素個(gè)數(shù),等函數(shù)被調(diào)用時(shí),形參就有值了,此時(shí)創(chuàng)建數(shù)組m和n都已確定,于是就寫成:void user(int m,int n) char Amn; 但這樣寫是錯(cuò)誤的。因?yàn)檫@段代碼是編譯器在編譯時(shí)就為A數(shù)組“規(guī)劃了”空間需求,盡管尚未真正分配空間。而變量的值未定,編譯器無法得到需求信息,無法完成數(shù)組的編譯 。其內(nèi)幕就是:在內(nèi)存的堆區(qū),存放第一個(gè)元素的位置之前,開辟了一個(gè)int型的無名單元,用來存放元素個(gè)數(shù),其地址的計(jì)算公式是:A - sizeof(int) 。所以,sizeof( A )會(huì)得到
3、A數(shù)組所占的總字節(jié)數(shù)。 但在靜態(tài)區(qū)和棧區(qū),則是將元素個(gè)數(shù)信息保存在“變量名表”中。 當(dāng)用指針指向該數(shù)組時(shí),指針無法保存這個(gè)信息,雖然可以訪問到每個(gè)數(shù)組元素,但只知道地址,并不知道是在對(duì)數(shù)組操作。這正是數(shù)組與指針的區(qū)別。 數(shù)組知道自己有多少個(gè)元素多維數(shù)組的概念應(yīng)用了嵌套原理的一維數(shù)組。數(shù)組不再是基本類型,而是一種組合類型,是基本類型的擴(kuò)展 ??梢詳嘌裕?在C語言中壓根就沒有多維數(shù)組!若將一維數(shù)組看作是一家一戶的平房,它們排列成街道;那么二維數(shù)組就是一棟棟的樓房,每個(gè)門洞是各樓層住戶的公共入口(行地址)。要訪問某家住戶,首先要找到哪棟樓(二維數(shù)組),然后確定是哪個(gè)門洞(行),最后再確定是哪層樓(列
4、元素)。C語言將多維數(shù)組的訪問變成了多次的一維訪問。A90A91A92A93A94A00A01A02A03A04. .一維數(shù)組A9一維數(shù)組A2一維數(shù)組A1一維數(shù)組A0. .int A105 ;A0A1A2A9. .二維數(shù)組的存儲(chǔ)模式:C語言只能處理一維的數(shù)組. 對(duì)二維數(shù)組,C語言進(jìn)行了“降維”處理。即將二維數(shù)組視為一個(gè)特殊的一維數(shù)組,它的每個(gè)元素都是個(gè)一維數(shù)組。這個(gè)數(shù)組和內(nèi)嵌的一維數(shù)組依然滿足一維數(shù)組的一切特點(diǎn)(無名,連續(xù),等大小)。 也就是說,充當(dāng)數(shù)組元素的內(nèi)嵌一維數(shù)組是一種特殊的大元素,C 語言把它視為一種特殊類型來處理。從而解決了多維的難題。二維數(shù)組的三種視角: 若有 int a53;
5、可視為一個(gè)二維數(shù)組; 可視為由五個(gè)大元素組成的一維數(shù)組,每個(gè)元素的類型是 int3 型,稱之為“一維數(shù)組類型”; 還可視為純粹由15個(gè)整型元素組成的一維數(shù)組; 三種不同的視角,提供了不同的訪問方法 。 但無論看作什么形式,它們在內(nèi)存中的存儲(chǔ)形式是一樣的。對(duì)于“大元素”、“類型嵌套”還可以這樣理解:使用typedef int D 10; 語句之后,再定義 D A ;就相當(dāng)于int A10; 若定義 D B5;就相當(dāng)于int B510; 經(jīng)typedef定義的int 10就是用戶自定義的一維數(shù)組類型。就是“大元素”的類型。畫出二維數(shù)組的內(nèi)存使用示意圖。二維數(shù)組的內(nèi)存一維數(shù)組 int A 10 ;
6、中的A等價(jià)于定義了一個(gè)指向元素的指針:int * const A;二維數(shù)組 int B3 4; 中的B等價(jià)于定義了一個(gè)指向一維數(shù)組為元素的指針: int (* const B)4;/指向二維數(shù)組的常指針更高維依次類推。、若定義一個(gè)二維數(shù)組 int B4 5; 說出以下三個(gè)表達(dá)式的含義: *(*(B+2)+0) *(B+2) B+2 B數(shù)組中第2行第0列元素的值。類型是int 。B數(shù)組中第3行的首址,仍是一維數(shù)組的首址。類型是int5。*( )的作用是將二維降為一維。 該表達(dá)式能計(jì)算出一個(gè)地址,就是B20的地址,但類型是int 5的,沒降維。 /越界,但是編譯器不檢查?!按蛴钶x三角形” 是一道
7、綜合應(yīng)用數(shù)組基本知識(shí)的典型例題。分析:楊輝三角形特點(diǎn)是每個(gè)元素都等于它正上方與左上方數(shù)之和,于是可以計(jì)算出除第一列第一行外的所有元素。如何設(shè)置第一列成為本題關(guān)鍵。利用二維數(shù)組可以對(duì)部分元素賦值的性質(zhì) ,對(duì)數(shù)組初始化:1 0 0 0 01 0 0 0 0 0 0 0 0 0 0 0 011 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1 : : : : : :打印楊輝三角形(打印10行)即 int a 1010=1,1,1,1,1,1,1,1,1,1 ; 這樣就可以得到第一列全1,其余全0的二維數(shù)組。字符數(shù)組應(yīng)用例 輸入一行字符,統(tǒng)計(jì)其中單詞個(gè)數(shù)。分析:首先要定義一個(gè)數(shù)組
8、把一行字符裝進(jìn)去;再利用計(jì)數(shù)器對(duì)單詞的個(gè)數(shù)計(jì)數(shù)。關(guān)鍵是什么時(shí)候開始計(jì)數(shù)。掃描該數(shù)組,若當(dāng)前字符非空格,前一個(gè)字符也非空格,表示一個(gè)單詞還沒讀完;若當(dāng)前字符空格,前一個(gè)字符也是空格,表示一個(gè)單詞還沒開始;一個(gè)新單詞的開始應(yīng)該是當(dāng)前字符非空格而前一個(gè)字符為空格,此時(shí)應(yīng)該計(jì)數(shù);一個(gè)單詞讀完時(shí),不要重復(fù)計(jì)數(shù)。 I am a student.0#include #include void main() char string81; int i,num=0; gets(string);/scanf遇到空格就幾位數(shù)。要想用 /scanf只能加循環(huán)。 for (i = 0;string i != 0;i+)
9、if (isalpha(string i )&(string i +1 = | string i +1 = 0) ) /isalpha()在ctype.h中 /意思是它是一個(gè)單詞嗎 num+; /* 下降沿觸發(fā)*/ printf(There are %d words in the linen,num); 練習(xí): 1 . 如何表示一個(gè)方陣的主副對(duì)角線?/aii 2 . 如何表示一個(gè)方陣的靠邊的元素?矩陣呢? 3 . 如何表示一個(gè)方陣的不靠邊的元素?/!() 4 . 如何打造一個(gè)單位方陣?/int a1010;/For()/aii;b=4321 取百位值 a=(b/100)%10) ?/善于寫表達(dá)式相鄰出現(xiàn)的多個(gè)字符串#include stdio.h#include string.h#include stdlib.hvoid main()char *s1 = China ;char *s2 =
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年《六查六看》自查心得體會(huì)(2篇)
- 2025年“治庸治懶治散”活動(dòng)心得體會(huì)樣本(2篇)
- 2025年6月七年級(jí)下班主任工作總結(jié)范例(二篇)
- 2025年業(yè)務(wù)實(shí)習(xí)生工作總結(jié)模版(二篇)
- 2025年業(yè)務(wù)經(jīng)理試用期轉(zhuǎn)正工作總結(jié)(三篇)
- 2025年上半年音樂工作總結(jié)標(biāo)準(zhǔn)范文(二篇)
- 高效時(shí)間管理學(xué)生成功的關(guān)鍵
- 音樂課中如何進(jìn)行高效的小學(xué)課堂管理
- 解密數(shù)學(xué)基石小學(xué)數(shù)學(xué)校本教材深度剖析
- 2025年《怪老頭兒》讀書心得高中學(xué)生(2篇)
- 浙江省杭州市2024年中考語文試卷(含答案)
- 世說新語原文及翻譯-副本
- 電力通信光纜檢修標(biāo)準(zhǔn)化作業(yè)指導(dǎo)書
- 安全隱患舉報(bào)獎(jiǎng)勵(lì)制度
- 工貿(mào)行業(yè)企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化建設(shè)實(shí)施指南
- T-CACM 1560.6-2023 中醫(yī)養(yǎng)生保健服務(wù)(非醫(yī)療)技術(shù)操作規(guī)范穴位貼敷
- 2024年全國統(tǒng)一考試高考新課標(biāo)Ⅱ卷數(shù)學(xué)試題(真題+答案)
- 人教版小學(xué)數(shù)學(xué)一年級(jí)下冊第1-4單元教材分析
- JTS-215-2018碼頭結(jié)構(gòu)施工規(guī)范
- 2024年長沙衛(wèi)生職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫含答案
- 2024山西省文化旅游投資控股集團(tuán)有限公司招聘筆試參考題庫附帶答案詳解
評(píng)論
0/150
提交評(píng)論