




已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
高級語言程序設(shè)計,第7章 內(nèi)存單元的地址 指針程序設(shè)計(2),二維數(shù)組批量數(shù)據(jù)處理的指針版,問題描述: 假設(shè)有全班60個人3門課程數(shù)學(xué)、英語、計算機的成績數(shù)據(jù),包括學(xué)號,試按每個人的總分對其降序排序。,分析,設(shè)已經(jīng)定義了數(shù)組 int num M, grade M N, totalM=0; 要通過input函數(shù)獲得用戶鍵盤輸入的數(shù)據(jù) 然后用chooseSort函數(shù)排序, 再用print函數(shù)打印輸出排序的結(jié)果,期望使用三個函數(shù), 其原型為,void input (int num, int grade 3,int total ); void chooseSort (int num , int grade 3, int total ); void print (const int num , const int grade 3, const int total );,或者,void input (int *num, ?int *grade, int *total); void chooseSort (int *num, ?int *grade, int *total); void print (const int *num, ?const int *grade; const int *total); 其中指向二維數(shù)組grade的指針如何定義和表示還不明確,然后,通過指針訪問一維數(shù)組或二維數(shù)組的元素 實現(xiàn)讀寫數(shù)據(jù),指針與二維數(shù)組的關(guān)系 二維數(shù)組名與行列地址,注意關(guān)于二維數(shù)組下面的事實,用指針訪問二維數(shù)組元素的第一種方法,由前面分析的結(jié)果可以看出,直接把二維數(shù)組名作為行地址的行地址進行行列偏移既可以訪問二維數(shù)組的元素 即 *(*(a+i)+j),如果定義成指針參數(shù)該是什么樣的指針呢?,void input(int *pNum, int *pGrade, int *pTotal); int *pGrade說明的pGrade能指向二維數(shù)組grade嗎? 回答是不能! 指針的類型必須與它所指向的變量類型相同 pGrade是什么類型? 二維數(shù)組名grade是什么含義?,用指針訪問二維數(shù)組元素的第二種方法行指針,指向行地址的指針-行指針, int (*pGrade)3 = grade; pGrade是行指針,是有3列的行指針 這樣 pGrade+1 就是grade +1 pGrade+2 就是grade + 2 ,函數(shù)調(diào)用可以寫成 : input ( num, grade, total);,注意這里的*grade在前面是*pGrade,用指針訪問二維數(shù)組元素的第三種方法-把二維數(shù)組看成一維數(shù)組,對于二維數(shù)組gradeMN, 定義 int *p = *grade; 則 p就是第一列的地址(第一個元素的地址)(第一行的首地址,見前面的圖,也就是第一列的地址),p指向了二維數(shù)組的第一個元素 第i行第j列的元素為 *(p+i*N+j) 或者寫成下標的形式, 注意是單下標 pi*N+j,函數(shù)調(diào)用為:input(num, *grade, total);,指針的指針,二維數(shù)組名和行指針是一類特殊的指針,它指向的元素是行地址。 還有多級指針,最典型的就是二級指針 int a = 10; int *aPtr= 其中*aPPtr就定義了一個二重指針,思考:可以用二重指針指向一個二維數(shù)組嗎?,例如 int *p, a23=1,2,3,4,5,6; p=a;,應(yīng)該用行指針?;蛘呷缦露x的若干個指針構(gòu)成的指針數(shù)組,思考:注意指針數(shù)組和行指針的不同,指向函數(shù)的指針,函數(shù)與數(shù)據(jù)一樣,也要存儲在內(nèi)存中,因此也有首地址。這個首地址就是函數(shù)的第一條語句(或指令)在內(nèi)存中的地址,通常稱這個地址為函數(shù)的入口地址。 怎么定義指向函數(shù)的指針變量呢?它的格式與普通的指針變量略有不同,形式如下: 數(shù)據(jù)類型 (*指針變量名) (形參參數(shù)列表),例如,int max(int a, int b); int min(int a, int b); 假設(shè)它們對應(yīng)的代碼已經(jīng)放在內(nèi)存的某個位置,定義一個可以指向這類函數(shù)的指針變量 定義 int (* ifuncPtr) ( int,int); 則 ifuncPtr = max; ifuncPtr就指向了max。 同樣可以讓ifuncPtr指向min。,間接引用函數(shù),int a,b; scanf(“%d %d”,指向函數(shù)的指針作為函數(shù)的參數(shù),排序算法中,升序和降序的區(qū)別僅僅在于排序過程中關(guān)系表達式是大于還是小于,除此之外都是一樣的。 可以用一個指向大于比較或小于比較的函數(shù)指針使排序算法函數(shù)成為升序降序通用的函數(shù) 升降的區(qū)別就在于比較的時候用大于還是小于,可以定義兩個函數(shù),int ascending(const int a, const int b); int descending(const int a, const int b); 即 int ascending(const int a, const int b) return ba; ,再定義一個交換函數(shù),void swap(int *x, int *y); 即 void swap(int *x, int *y) int temp; temp = *x; *x = *y; *y = temp; ,選擇法升序降序通用函數(shù),void chooseSort(int num,int grade3,int total, int(*compare)(int,int) ) in
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 浙江商業(yè)職業(yè)技術(shù)學(xué)院《法語語言學(xué)概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 太原科技大學(xué)《戶外營地》2023-2024學(xué)年第二學(xué)期期末試卷
- 四川西南航空職業(yè)學(xué)院《應(yīng)用統(tǒng)計學(xué)導(dǎo)論》2023-2024學(xué)年第一學(xué)期期末試卷
- 南京師范大學(xué)中北學(xué)院《管理會計案例》2023-2024學(xué)年第二學(xué)期期末試卷
- 南通大學(xué)杏林學(xué)院《中級阿拉伯語》2023-2024學(xué)年第二學(xué)期期末試卷
- 水力機械結(jié)構(gòu)優(yōu)化考核試卷
- 文具批發(fā)商的市場動態(tài)監(jiān)測與市場預(yù)測考核試卷
- 油氣倉儲國際合作與交流考核試卷
- 衛(wèi)生用品客戶體驗優(yōu)化考核試卷
- 玩具企業(yè)的品牌推廣與市場拓展考核試卷
- 2024年北京市垂楊柳醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 2024人教版七年級地理上冊 第四章 天氣與氣候 單元測試(含解析)
- 水利水電工程可行性研究報告編制規(guī)程
- 社工站2024年度工作總結(jié)與2025年項目計劃
- 初級制圖員職業(yè)鑒定考試題及答案
- 《山谷回音真好聽》名師課件(簡譜)
- 2024公安機關(guān)人民警察高級執(zhí)法資格考試題(解析版)
- 3-6-多學(xué)科設(shè)計優(yōu)化
- GB/T 4706.1-2024家用和類似用途電器的安全第1部分:通用要求
- 2024年重慶市高考物理試卷(含答案解析)
- 《事故汽車常用零部件修復(fù)與更換判別規(guī)范》
評論
0/150
提交評論