計(jì)算機(jī)二級(jí)c語(yǔ)言課件第8章_第1頁(yè)
計(jì)算機(jī)二級(jí)c語(yǔ)言課件第8章_第2頁(yè)
計(jì)算機(jī)二級(jí)c語(yǔ)言課件第8章_第3頁(yè)
計(jì)算機(jī)二級(jí)c語(yǔ)言課件第8章_第4頁(yè)
計(jì)算機(jī)二級(jí)c語(yǔ)言課件第8章_第5頁(yè)
已閱讀5頁(yè),還剩50頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、12022-1-1522022-1-153變量的兩個(gè)物理意義變量的兩個(gè)物理意義 變量的內(nèi)容變量的內(nèi)容變量的地址變量的地址2022-1-1545382022-1-155532004p=&c82022-1-156200420002022-1p = &a;52022-1-158a ab bp1p1p2p2p p6 68 8a=6,b=8a=6,b=8max=8,min=6max=8,min=6【例【例8.1】輸入】輸入a、b兩個(gè)整數(shù),兩個(gè)整數(shù),使用指針變量按大小順序輸出使用指針變量按大小順序輸出這兩個(gè)整數(shù)。這兩個(gè)整數(shù)。 2022-1-159a a、* *p1

2、p1b b、* *p2p2p1p1p2p2t t6 68 8a=8,b=6a=8,b=6max=8,min=6max=8,min=66 68 86 62022-1-1510P1=404,*p1=10P2=410,*p2=403020104050 只有當(dāng)指針變量指向數(shù)組時(shí)指針的加減只有當(dāng)指針變量指向數(shù)組時(shí)指針的加減運(yùn)算才有意義。運(yùn)算才有意義。 指針變量可加減一個(gè)整型表達(dá)式。如:指針變量可加減一個(gè)整型表達(dá)式。如:p1+、p2+3、p2-、p2-2。 指針的加減運(yùn)算是以基類型為單位指針的加減運(yùn)算是以基類型為單位(即(即sizeof(類型)類型)) )的的。 兩個(gè)指針變量不能作加法運(yùn)算,只有當(dāng)兩個(gè)指針

3、變量不能作加法運(yùn)算,只有當(dāng)兩個(gè)指針變量指向同一數(shù)組時(shí),進(jìn)行指針變兩個(gè)指針變量指向同一數(shù)組時(shí),進(jìn)行指針變量相減才有實(shí)際意義。如:量相減才有實(shí)際意義。如:p2-p1。2022-1-15113020104050 指向同一數(shù)組的兩個(gè)指針可以進(jìn)行關(guān)系指向同一數(shù)組的兩個(gè)指針可以進(jìn)行關(guān)系運(yùn)算,表明它們所指向元素的相互位置關(guān)系運(yùn)算,表明它們所指向元素的相互位置關(guān)系 。如:如:p2 p1、p2 = p1。 指針與一個(gè)整型數(shù)據(jù)進(jìn)行比較是沒(méi)有意指針與一個(gè)整型數(shù)據(jù)進(jìn)行比較是沒(méi)有意義的義的 。 不同類型指針變量之間比較是非法的不同類型指針變量之間比較是非法的。 NULL可以與任何類型指針進(jìn)行可以與任何類型指針進(jìn)行=、!

4、=的關(guān)系運(yùn)算,用于判斷指針是否為空指針的關(guān)系運(yùn)算,用于判斷指針是否為空指針 。2022-1-1512a0a0a9a92022-1-1513a0a0a9a92022-1-1514a a00a a9912345678910 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 102022-1-1515a a00a a99102022-1-1516a0a0a9a9a1a1 . . . . . . . . . . . .1 12 23 34 45 56 67 78 89 910102022-1-1517 輸入輸入a數(shù)組數(shù)組 for (p=a; pa+4; p+) pp=p f

5、or (q=p+1; q*q F pp=q T pp!=p F *pp*p 輸出輸出a數(shù)組數(shù)組圖圖8.9 選擇法排序選擇法排序N-S圖圖2022-1-15180 0101020201 1111121212 2121222223 313132323aa a00a a11a a22aa+1a+22022-1-15190 0101020201 1111121212 2121222223 313132323a0數(shù)組數(shù)組a1數(shù)組數(shù)組a2數(shù)組數(shù)組2022-1-15200 0101020201 1111121212 2121222223 313132323a a00a a11a a22a2022-1-152

6、10 0101020201 1111121212 2121222223 313132323a2022-1-15222022-1-15230 0101020201 1111121212 2121222223 313132323alplp+1lp+2 0 1 2 3 10 11 12 13 20 21 22 232022-1-15240 0101020201 1111121212 2121222223 313132323alplplplp 0 1 2 3 10 11 12 13 20 21 22 23 2022-1-1525字符串的兩種表示方式:字符串的兩種表示方式: 字符數(shù)組表示方式,字符串存放

7、在一維數(shù)組中,字符數(shù)組表示方式,字符串存放在一維數(shù)組中,引用時(shí)用數(shù)組名。引用時(shí)用數(shù)組名。 字符指針變量表示方式,字符指針變量存放字字符指針變量表示方式,字符指針變量存放字符串的首地址,引用時(shí)用指針變量名。符串的首地址,引用時(shí)用指針變量名。Good morning!Good night!2022-1-1526 將一個(gè)字符串賦給一個(gè)字符數(shù)組只能使用將一個(gè)字符串賦給一個(gè)字符數(shù)組只能使用strcpy函數(shù)函數(shù) 將字符串常量的首地址賦給指針變量,可使用賦值運(yùn)將字符串常量的首地址賦給指針變量,可使用賦值運(yùn)算符算符“=” How are you ?Fine,thanks.2022-1-1527 使用字符串輸入

8、輸出函數(shù)使用字符串輸入輸出函數(shù)gets和和puts; 在在scanf和和printf函數(shù)中使用函數(shù)中使用 %s格式實(shí)現(xiàn)。格式實(shí)現(xiàn)。 輸入字符串時(shí),函數(shù)參數(shù):數(shù)組名、存有數(shù)組名的輸入字符串時(shí),函數(shù)參數(shù):數(shù)組名、存有數(shù)組名的指針變量;指針變量; 輸出字符串時(shí),函數(shù)參數(shù):數(shù)組名、存有字符串首輸出字符串時(shí),函數(shù)參數(shù):數(shù)組名、存有字符串首地址的指針變量。地址的指針變量。 I love China! I love China! 2022-1-15282022-1-15292022-1-1530指針數(shù)組就是數(shù)組中的每個(gè)元素均為指針類型指針數(shù)組就是數(shù)組中的每個(gè)元素均為指針類型 2022-1-15312022-

9、1-1532利用字符指針數(shù)組處理長(zhǎng)度不等的字符串,可節(jié)省利用字符指針數(shù)組處理長(zhǎng)度不等的字符串,可節(jié)省存儲(chǔ)空間。存儲(chǔ)空間。 2022-1-1533整型值整型值整型變量整型變量整型變量地址整型變量地址一級(jí)指針變量一級(jí)指針變量一級(jí)指針變量地址一級(jí)指針變量地址二級(jí)指針變量二級(jí)指針變量 2022-1-1534a的內(nèi)容的內(nèi)容a&ap&ppp2022-1-1535pppppp2022-1-1536759 7775 75 2022-1-1537 2022-1-15382022-1-1539 由于指向二維數(shù)組的指針?lè)譃樾兄羔樅陀捎谥赶蚨S數(shù)組的指針?lè)譃樾兄羔樅驮刂羔?,所以他們作為函?shù)參數(shù)的形式

10、也元素指針,所以他們作為函數(shù)參數(shù)的形式也不同。不同。 2022-1-15402022-1-1541 指向二維數(shù)組元素的指針作函數(shù)參數(shù)指向二維數(shù)組元素的指針作函數(shù)參數(shù)時(shí),是利用二維數(shù)組元素按行連續(xù)存儲(chǔ)的的時(shí),是利用二維數(shù)組元素按行連續(xù)存儲(chǔ)的的特點(diǎn),訪問(wèn)數(shù)組的每一個(gè)元素。特點(diǎn),訪問(wèn)數(shù)組的每一個(gè)元素。被調(diào)函數(shù)的被調(diào)函數(shù)的形參必須定義為指向二維數(shù)組元素的指針變形參必須定義為指向二維數(shù)組元素的指針變量。量。2022-1-15422022-1-1543main函數(shù)只能有兩個(gè)形參,并且這兩個(gè)形參的函數(shù)只能有兩個(gè)形參,并且這兩個(gè)形參的類型也是固定的。第一個(gè)形參必須是整型變量,類型也是固定的。第一個(gè)形參必須是整

11、型變量,第二個(gè)形參可以定義為字符型指針數(shù)組,也可以第二個(gè)形參可以定義為字符型指針數(shù)組,也可以定義為二級(jí)字符指針變量,因此也可以寫成定義為二級(jí)字符指針變量,因此也可以寫成 main(int argc, char *argv)2022-1-1544 要調(diào)用帶參數(shù)的主函數(shù)要調(diào)用帶參數(shù)的主函數(shù)必須在操作系統(tǒng)環(huán)境下必須在操作系統(tǒng)環(huán)境下進(jìn)行。假設(shè)進(jìn)行。假設(shè)C語(yǔ)言源程序文件語(yǔ)言源程序文件file1.c,經(jīng)過(guò)編譯、,經(jīng)過(guò)編譯、連接生成一個(gè)可執(zhí)行文件連接生成一個(gè)可執(zhí)行文件file1.exe。在在DOS系統(tǒng)提系統(tǒng)提示符后鍵入示符后鍵入可執(zhí)行文件名可執(zhí)行文件名file1,即可執(zhí)行該程序即可執(zhí)行該程序 。2022-1

12、-15452022-1-1546C:file1 one two threeonetwothree 注意注意: : 命令行參數(shù)所傳送的數(shù)據(jù)全部都是字符命令行參數(shù)所傳送的數(shù)據(jù)全部都是字符串。即便傳送的是數(shù)值,也是按字符串方式傳送串。即便傳送的是數(shù)值,也是按字符串方式傳送給主函數(shù)。程序中使用這些參數(shù)時(shí),還需要將數(shù)給主函數(shù)。程序中使用這些參數(shù)時(shí),還需要將數(shù)字字符串轉(zhuǎn)換成數(shù)值型數(shù)據(jù)。字字符串轉(zhuǎn)換成數(shù)值型數(shù)據(jù)。C語(yǔ)言標(biāo)準(zhǔn)庫(kù)函數(shù)語(yǔ)言標(biāo)準(zhǔn)庫(kù)函數(shù)提供了一些相關(guān)的數(shù)據(jù)類型轉(zhuǎn)換函數(shù)提供了一些相關(guān)的數(shù)據(jù)類型轉(zhuǎn)換函數(shù) 。2022-1-1547 如果一個(gè)函數(shù)的返回值是指針,則稱此函數(shù)如果一個(gè)函數(shù)的返回值是指針,則稱此函數(shù)

13、為指針型函數(shù)。為指針型函數(shù)。 2022-1-15482022-1-15492022-1-1550 在在C C語(yǔ)言中,函數(shù)名具有與數(shù)組名類似的語(yǔ)言中,函數(shù)名具有與數(shù)組名類似的特性,數(shù)組名代表數(shù)組的首地址,特性,數(shù)組名代表數(shù)組的首地址,函數(shù)名代表函數(shù)名代表函數(shù)的起始地址函數(shù)的起始地址(即該函數(shù)的程序代碼段在內(nèi)(即該函數(shù)的程序代碼段在內(nèi)存中所占用的存儲(chǔ)空間的首地址,也稱函數(shù)入存中所占用的存儲(chǔ)空間的首地址,也稱函數(shù)入口)。因此也可以口)。因此也可以把函數(shù)名賦給一個(gè)函數(shù)指針把函數(shù)名賦給一個(gè)函數(shù)指針變量變量,使其成為,使其成為指向該函數(shù)的指針變量指向該函數(shù)的指針變量。函數(shù)函數(shù)名名則可以看成則可以看成是函數(shù)

14、指針常量是函數(shù)指針常量。 2022-1-1551 函數(shù)指針函數(shù)指針與與變量指針變量指針的共同之處是都可以做的共同之處是都可以做間接訪問(wèn)。間接訪問(wèn)。變量指針變量指針指向內(nèi)存的數(shù)據(jù)存儲(chǔ)區(qū),通指向內(nèi)存的數(shù)據(jù)存儲(chǔ)區(qū),通過(guò)間接存取運(yùn)算訪問(wèn)目標(biāo)變量;過(guò)間接存取運(yùn)算訪問(wèn)目標(biāo)變量;函數(shù)指針函數(shù)指針指向內(nèi)指向內(nèi)存的程序代碼存儲(chǔ)區(qū),通過(guò)間接存取運(yùn)算存的程序代碼存儲(chǔ)區(qū),通過(guò)間接存取運(yùn)算使程序使程序流程轉(zhuǎn)移到指針?biāo)赶虻暮瘮?shù)入口流程轉(zhuǎn)移到指針?biāo)赶虻暮瘮?shù)入口,取出函數(shù)的,取出函數(shù)的機(jī)器指令并執(zhí)行函數(shù),完成函數(shù)的調(diào)用。機(jī)器指令并執(zhí)行函數(shù),完成函數(shù)的調(diào)用。 2022-1-15522022-1-1553 將將作為參數(shù),可在主調(diào)函數(shù)和被調(diào)作為參數(shù),可在主調(diào)函數(shù)和被調(diào)函數(shù)之間將第三個(gè)函數(shù)作為參數(shù)傳遞,實(shí)現(xiàn)在被函數(shù)之間將第三個(gè)函數(shù)作為參數(shù)傳遞,實(shí)現(xiàn)在被函數(shù)中調(diào)用不同函數(shù)的目的,使被調(diào)函數(shù)成為通函數(shù)中調(diào)用不同函數(shù)的目的,使被調(diào)函數(shù)成為通用函數(shù)。用函數(shù)。 作函數(shù)參數(shù)時(shí),作函數(shù)參數(shù)時(shí),一定要定義為一定要定義為指向函數(shù)的指針變量,指向函數(shù)的指針變量,則可以是函數(shù)名或指則可以是函數(shù)名或指向函數(shù)的指針變量。向函數(shù)的指針變量。 Y f(x) (x2,f(x2) 0 x1 x x0 x2 X (x1,f(x1) 圖8.21 弦截法求方程的根示意圖

溫馨提示

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

評(píng)論

0/150

提交評(píng)論