




已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
C語言程序設計 第六講 主要內(nèi)容 一 指針和函數(shù) 二 指針與數(shù)組 三 函數(shù)與數(shù)組 1 指針和函數(shù)1 1指針變量作函數(shù)參數(shù)1 2返回指針值的函數(shù)1 3指向函數(shù)的指針變量 swap int p1 int p2 intp p p1 p1 p2 p2 p main inta b int pointer 1 pointer 2 scanf d d 5 9 2000 2002 5 9 COPY 5 例將數(shù)從大到小輸出 1 1指針變量作為函數(shù)參數(shù) swap int p1 int p2 intp p p1 p1 p2 p2 p main inta b int pointer 1 pointer 2 scanf d d 5 9 2000 2002 5 9 例將數(shù)從大到小輸出 運行結(jié)果 9 5 地址傳遞 swap int p1 int p2 int p p p1 p1 p2 p2 p main inta b int pointer 1 pointer 2 scanf d d 運行結(jié)果 9 9 編譯警告 結(jié)果不對 intx int p 5 9 2000 2002 9 9 COPY 假設2000 例將數(shù)從大到小輸出 swap intx inty intt t x x y y t main inta b int pointer 1 pointer 2 scanf d d 運行結(jié)果 5 9 值傳遞 5 9 2000 2002 COPY 5 5 9 例將數(shù)從大到小輸出 運行結(jié)果 5 9 swap int p1 int p2 int p p p1 p1 p2 p2 p main inta b int pointer 1 pointer 2 scanf d d 5 9 2000 2002 COPY 2000 地址傳遞 2000 2002 例將數(shù)從大到小輸出 Voidf inty int x y y x x x y main intx 2 y 4 f y 例 以下程序的運行結(jié)果是 考學結(jié)合例題 1 2返回指針的函數(shù) 返回值為某指針類型的函數(shù) 函數(shù)定義形式 類型標識符 函數(shù)名 參數(shù)表 例int f intx inty 例寫一個函數(shù) 求兩個int型變量中居于較大值的變量的地址 2 3 2002 2000 例寫一個函數(shù) 求兩個int型變量中居于較大值的變量的地址 2 3 3 2 例寫一個函數(shù) 求兩個int型變量中居于較大值的變量的地址 不能返回形參或局部變量的地址 思考為什么 200A 1 3指向函數(shù)的指針函數(shù)在編譯時被分配的入口地址 程序段的存儲地址 稱為函數(shù)指針 用函數(shù)名表示 我們將這一地址存到一個指針變量里去 這個變量就是指向函數(shù)的指針變量 函數(shù)指針變量賦值 如p max 函數(shù)返回值的數(shù)據(jù)類型 專門存放函數(shù)入口地址可指向返回值類型相同的不同函數(shù) 指向函數(shù)的指針變量定義形式 數(shù)據(jù)類型 指針變量名 如int p 函數(shù)指針變量指向的函數(shù)必須有函數(shù)說明 函數(shù)調(diào)用形式 c max a b c p a b c p a b 對函數(shù)指針變量p n p p 無意義 不能省int p 與int p 不同 用函數(shù)指針變量作函數(shù)參數(shù) 例 用函數(shù)指針變量作參數(shù) 求最大值 最小值和兩數(shù)之和 1 有以下程序main inta 1 b 3 c 5 int p1 fun函數(shù)返回值是A 不確定的值B 一個整數(shù)C 形參p中存放的值D 形參p的地址值 考學結(jié)合例題 3 08 4 40 設有定義語句int f int 則以下敘述正確的是 A f是基類型為int的指針變量B f是指向函數(shù)的指針變量 該函數(shù)具有一個int類型的形態(tài)C f是指向int類型一維數(shù)組的指針變量D f是函數(shù)名 該函數(shù)的返回值是其類型為int類型的地址4 09 9 33 設有以下函數(shù) voidfun intn char s 則下面對函數(shù)指針的定義和賦值均正確的是A void pf pf fun B void pf pf fun C void pf pf fun D void pf int char pf fun 考學結(jié)合例題 二 指針與數(shù)組2 1一維數(shù)組和指針1 地址關系2 指向一維數(shù)組的指針變量3 數(shù)組的表示方法2 2二維數(shù)組和指針1 二維數(shù)組元素的地址和二維數(shù)組名2 指向二維數(shù)組元素的指針變量3 指向二維數(shù)組中的行的指針變量 2 1一維數(shù)組和指針1 一維數(shù)組元素的地址和一維數(shù)組名 地址關系 設 inta 10 p 數(shù)組名是表示數(shù)組首地址的地址常量 1 可以通過數(shù)組名來表示數(shù)組元素的地址 a 即a 0 是a 0 的地址即 即 a i 2 指向一維數(shù)組的指針變量設 inta 10 p a 2 有關指針的運算1 算術運算 p i p i d i為整型數(shù) d為p指向的變量所占字節(jié)數(shù) p p p i p i p i p i等若p1與p2指向同一數(shù)組中的元素 p1 p2 兩指針間元素個數(shù) p1 p2 dp1 p2無意義 例p指向float數(shù) 則p 1 p 1 4 例p指向int型數(shù)組 且p 則p 1指向a 1 1 2 指針變量的關系運算若p1和p2指向同一數(shù)組 則p1p2表示p1指的元素在后p1 p2表示p1與p2指向同一元素若p1與p2不指向同一數(shù)組 比較無意義p NULL或p NULL 3 數(shù)組元素表示方法 變址運算符a i a i a i p i p i a i 例數(shù)組元素的引用方法 main inta 5 pa i for i 0 i 5 i a i i 1 pa a for i 0 i 5 i printf pa d d n i pa i for i 0 i 5 i printf a d d n i a i for i 0 i 5 i printf pa d d n i pa i for i 0 i 5 i printf a d d n i a i 08 932若有定義語句 doublex 5 1 0 2 0 3 0 4 0 5 0 p x 則錯誤引用x數(shù)組元素的是 A pB x 5 C p 1 D x10 3 28 設有定義doublea 10 s a 一下能夠代表數(shù)組元素a 3 的是A s 3 B s 3 C s 3 D s 3 例inta 1 2 3 4 5 6 7 8 9 10 p a i 數(shù)組元素地址的正確表示 A a 1 B a C p D p i 數(shù)組名是地址常量p p a a a 1 a 2 例voidmain inta 5 8 7 6 2 7 3 inty p 輸出 56 例注意指針變量的運算 6 例1 有以下程序 main inta 10 1 2 3 4 5 6 7 8 9 10 p 程序運行結(jié)果是 2 2二維數(shù)組和指針1 二維數(shù)組元素的地址和二維數(shù)組名 設有 inta 3 4 p 對于二維數(shù)組 1 a是數(shù)組名 包含三個元素a 0 a 1 a 2 2 每個元素a i 又是一個一維數(shù)組 包含4個元素 inta 3 4 基類型 行指針與列指針 對二維數(shù)組inta 3 4 有a 二維數(shù)組的首地址 即第0行的首地址a i 第i行的首地址a i a i 第i行第0列的元素地址a i j a i j 第i行第j列的元素地址 a i j a i j a i j a i a i a i a i a i 0 值相等 含義不同a i a i 表示第i行首地址 指向行a i a i a i 0 表示第i行第0列元素地址 指向列 二維數(shù)組元素表示形式 1 a 1 2 2 a 1 2 3 a 1 2 4 a 0 0 1 4 2 地址表示 1 a 1 2 a 1 0 3 a 1 4 a 1 5 int a 1 地址表示 1 a 1 2 2 a 1 2 3 a 1 2 4 a 0 0 1 4 2 2 指向二維數(shù)組元素的指針變量 例指向二維數(shù)組元素的指針變量 main staticinta 3 4 1 3 5 7 9 11 13 15 17 19 21 23 int p for p a 0 p a 0 12 p if p a 0 4 0 printf n printf 4d p p a p 3 指向二維數(shù)組中的行的指針變量定義形式 數(shù)據(jù)類型 指針名 一維數(shù)組維數(shù) 例int p 4 不能少int p 4 與int p 4 不同 p的值是一維數(shù)組的首地址 p是行指針 可讓p指向二維數(shù)組某一行如inta 3 4 p 4 a 一維數(shù)組指針變量維數(shù)和二維數(shù)組列數(shù)必須相同 例 二維數(shù)組行指針變量舉例 main staticinta 3 4 1 3 5 7 9 11 13 15 17 19 21 23 inti j p 4 for p a i 0 i 3 i p for j 0 j 4 j printf d p j printf n p a 0 p a p p 0 j 08 4 9 以下程序的定義語句中 x 1 的初值是 9 程序運行后輸出的內(nèi)容是 10 includemain int 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 p 4 i for i 0 i 4 i p i 則下列說法正確的是A 定義了基類型為int的三個指針變量B 定義了基類型為int的具有三個元素的指針數(shù)組pt C 定義了一個名為 pt 具有三個元素的整型數(shù)組D 定義了一個名為pt的指針變量 它可以指向每行有三個整數(shù)元素的二維數(shù)組 答案 2468 三 數(shù)組與函數(shù) 1 一維數(shù)組元素作實參2 一維數(shù)組名作實參對應函數(shù)的首部可以是以下3種格式 Fun int a Fun inta Fun inta n 例 intfun int x intn inti sum 0 for i 0 i n i sum sum x i returnsum Main inta 1 2 3 4 5 s 0 s fun a 5 printf d n s 程序運行結(jié)果是 3 一維數(shù)組元素地址作實參例 Voidsum intp p 0 p 1 p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國CDMA無線MODEM數(shù)據(jù)監(jiān)測研究報告
- 2025年中國3,4-二甲基苯胺數(shù)據(jù)監(jiān)測報告
- 2025至2030年中國鞋業(yè)連鎖店市場分析及競爭策略研究報告
- 2025至2030年中國鋁鏈市場分析及競爭策略研究報告
- 2025至2030年中國迷你卡車輪胎市場分析及競爭策略研究報告
- 2025至2030年中國藥品臺市場分析及競爭策略研究報告
- 2025至2030年中國網(wǎng)狀閥片市場分析及競爭策略研究報告
- 2025至2030年中國碳鋼焊接管件市場分析及競爭策略研究報告
- 2025至2030年中國電動速控拋光拉絲機市場分析及競爭策略研究報告
- 2025至2030年中國靈巧型光功率計市場分析及競爭策略研究報告
- 剖宮產(chǎn)手術圍手術期預防用抗菌藥物管理實施細則
- 2024北京海淀區(qū)高一(下)期末英語試題和答案
- 韶關拆除廠房施工方案
- 食品安全日管控、周排查及月調(diào)度記錄表
- 企業(yè)員工心理危機干預
- 330kV變電站運營維護管理方案
- 拋石擠淤及基礎大開挖施工方案
- 《動火作業(yè)安全培訓》課件
- 兒童相機市場的發(fā)展趨勢分析
- 守護生命之窗-氣管切開患者護理
- 2022年6月天津市普通高中學業(yè)水平合格性考試化學試卷
評論
0/150
提交評論