下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、版C 程序設(shè)計指針問題的探討山東工山東工簡介:本文通過對版C 程序設(shè)計指針部分存在的概念問題的分析,其誤點,并給出了具體的修改方法。關(guān)鍵字:C 語言,指針一、前言語言是計算機等級中多數(shù)人選擇的語言,具有功能強大、簡潔高效等優(yōu)點。在 C語言中指針是一個最重要的概念。可以說,不能正確自如地應(yīng)用指針等于沒有學(xué)會 C 語言。指針既是 C 語言學(xué)習(xí)的重點也是一個難點,其中指針與數(shù)組的關(guān)系更是難點中的難點。不少人學(xué)習(xí)多年后仍對這一部分存在模糊的認識。因此,在和準確。目前 C 語言初學(xué)者普遍采用了該書針對初學(xué)者的特點,概念清晰,例題豐富,受到中關(guān)于指針的描述應(yīng)特別嚴密的C 程序設(shè)計(編著)。與讀者的一致好評
2、。被電子工業(yè)部一等獎。該于 1999 年部級優(yōu)秀了第二版,對原書進行了多處修訂與充實加強。但發(fā)現(xiàn)書中關(guān)于指針部分的講述似存在誤點和前后之處,容易造成學(xué)習(xí)上的困惑。現(xiàn)提出來與大家共同探討。二、中的誤點:將指向數(shù)組首元素的指針當作指向數(shù)組的指針該三處描述與此相關(guān),值得商榷。第一處:該書 210 頁 10.3 節(jié)數(shù)組的指針和指向數(shù)組的指針變量開始處寫到:“一個變量有地址,一個數(shù)組包含若干元素,它們都有相應(yīng)的內(nèi)存地址。指針變量既然可以指向變量,當然也可以指向數(shù)組和數(shù)組元素(把數(shù)組的起始地址或某一元素的地址放到一個指針變量中)。所謂數(shù)組的指針是指數(shù)組的起始地址,數(shù)組元素的指針是數(shù)組元素的地址?!闭f明:讀
3、完這一段后可能產(chǎn)生這樣:數(shù)組的指針就是指數(shù)組的起始地址嗎?將數(shù)組的起始地址放到一個指針變量中,該指針變量就是指向數(shù)組的指針變量了嗎?在這一段文字中給讀者的感覺似乎是數(shù)組首元素的地址(就是數(shù)組的起始地址)就是數(shù)組的指針。即如果有:a10,*p=a;則 p 中賦值了數(shù)組a 的首元素的地址,當然也是數(shù)組 a 的起始地址。那么根據(jù)論述,p 既是指向數(shù)組 a 首元素的指針變量,又是指向數(shù)組 a 的指針變量。如果從這段文字中還不太能確定以上的結(jié)論的話,那么書中后面兩處的說明更能明確這一點。第二處:接下來在 211 頁10.3.1 指向數(shù)組元素的指針小節(jié)中舉例說明,原文如下:a10;*p.以下兩個語句是等價
4、的: p=&a0;p=a;說明:這里當然沒有問題,但應(yīng)注意,指針變量 p 是指向數(shù)組元素的,它的指向類型是,盡管它指向數(shù)組的第一個元素。第三處:212 頁10.3.2 通過指針數(shù)組元素小節(jié)中補充說明,原文如下:(3)指向數(shù)組的指針變量也可以帶下標,如 pi與*(p+i)等價。說明:這里的 p 就是第二處例子中的*p,且執(zhí)行了 p=a。p 指向數(shù)組 a 的首元素 a0。 而在此又說明 p 是指向數(shù)組的指針變量。 因此,從原書中可以得出這樣的結(jié)論:指向數(shù)組首元素的指針變量就是指向數(shù)組的指針變量這個概念顯然是錯誤的。因為如果一個指針變量 p1 指向一個數(shù)組首元素,則*p1到該數(shù)組首元素,元素是一個變
5、量;而如果一個指針變量 p2 指向一個數(shù)組,例如,一個長為10 的整型一維數(shù)組,則*p2到數(shù)組名,而數(shù)組名是指向首元素的指針常量;這就是說:指向數(shù)組首元素的指針與指向數(shù)組的指針完全是兩個概念,不可以。三、正確的概念那么,究竟數(shù)組的指針和指向數(shù)組的指針變量?要定義一個存貯數(shù)組指針的指針變量,必須定義指向的數(shù)組的類型與長度。如a10;(*p1)10, *p2;p1=&a;p2=a;這里,&a 就是數(shù)組 a 的指針,p1 是一個指向長為 10 的整型數(shù)組的指針變量,經(jīng)過賦值 p1=&a 后它指向數(shù)組a。而 p2 是指向數(shù)組元素的指針變量,經(jīng)過賦值后它指向數(shù)組 a 的首元素a0。對 p1 執(zhí)行增一操作
6、 p1+,p1 內(nèi)地址值增加 20,而對 p2 執(zhí)行增一操作 p2+,p2 內(nèi)地址值增加 2(對于 MSDOS 環(huán)境)。其實,該書中 229 頁才正式引入指向長為 m 的數(shù)組的指針變量這一概念,用于解釋一個 n 行 m 列的二維數(shù)組名是一個指向長為 m 的數(shù)組的指針。讀者從中會得到兩個前后不一致的有關(guān)數(shù)組的指針的概念。 在 224 頁10.3.4 指向數(shù)組的指針和指針變量之前,一直都是講述一維數(shù)組與指針的關(guān)系, 這時根本用不到指向數(shù)組的指針這一概念。而書中前面的關(guān)于指向數(shù)組的指針變量顯然是指向數(shù)組首元素的指針變量之誤。嚴格地,說“一個指針變量是指向數(shù)組的指針變量”并不是一個完整的概念,完整的概
7、念應(yīng)當是指向長度為 x 的某類型數(shù)組的指針,完整的概念應(yīng)當是指向長度為 n*m 的的某類型二維數(shù)組的指針。盡管幾乎所有時一定要將其補充完整。都有“指向數(shù)組的指針”這樣的省略說法,但在理解四、建議的修改方法(1)、鑒于指針與數(shù)組的關(guān)系的復(fù)雜性和重要性,本人認為原書中在 10.3 一節(jié)中講述指針與一維數(shù)組關(guān)系和指針與數(shù)組的關(guān)系太龐大,建議將其分為兩節(jié)。原 10。3 節(jié)的節(jié)名由“數(shù)組的指針和指向數(shù)組的指針變量”改為“一維數(shù)組與指針的關(guān)系”,將原 10.3.4 小節(jié)(長達 9 頁,是書中最長的小節(jié),又是全書難點所在)作為另一節(jié),原小節(jié)名是“指向數(shù)組的指針和指針變量”改為節(jié)名“一概念過早地出現(xiàn)。數(shù)組與指
8、針的關(guān)系”。這樣可以防止“數(shù)組的指針”這(2)、第一處似應(yīng)改為:“一個變量有地址,一個數(shù)組包含若干元素,它們都有相應(yīng)的內(nèi)存地址。指針變量既然可以指向變量,當然也可以指向數(shù)組元素(把數(shù)組的某一元素的地址放到一個指針變量中)?!闭f明:因本節(jié)只講述一維數(shù)組與指針的關(guān)系,用不到“指向數(shù)組的指針變量”這一概念,故將其從中刪去。(3)第三處似應(yīng)改為:指向數(shù)組元素的指針變量也可以帶下標,如 pi與*(p+i)等價。特別地,當 p 指向數(shù)組首元素時,pi與 ai也等價。說明:因書中前文的 p 是*類型的,是指向整型變量的或指向整型數(shù)組元素的指針變量,故將原“指向數(shù)組的指針變量”改為“指向數(shù)組元素的指針變量”。另外,對當 p 指向數(shù)組首元素時 pi與 ai也等價做了強調(diào)說明。五、結(jié)束語筆者對比了第 1 版和第 2 版,發(fā)現(xiàn)這幾處問題都是相同的。作為一本影響廣泛的教材,出現(xiàn)這樣前最好的C 語言且多次再版和印刷都沒有改正是不應(yīng)該的。盡管如此,該書仍不失為目。希望本文所及修改的方法可以對語言學(xué)習(xí)者有所幫助。參考文獻:1Herbert Schel
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度醫(yī)療設(shè)備銷售傭金分紅合同范本3篇
- 二零二五版電子商務(wù)知識產(chǎn)權(quán)保護合同簽署4篇
- 二手房購買定金協(xié)議:2024年標準版版B版
- 二零二五版網(wǎng)絡(luò)信息安全技術(shù)服務(wù)合同范本2篇
- 2025版新產(chǎn)品發(fā)布宣傳片制作服務(wù)協(xié)議2篇
- 2025年度個人之間房屋買賣合同爭議解決條款范本2篇
- 二零二五版月子中心嬰兒早教及產(chǎn)后恢復(fù)服務(wù)合同2篇
- 2025年度個人藝術(shù)品拍賣委托協(xié)議4篇
- 2025年度摩托車轉(zhuǎn)讓與賽車俱樂部賽事運營管理協(xié)議
- JF工程2024年山西建筑安裝協(xié)議范本版B版
- 光伏自發(fā)自用項目年用電清單和消納計算表
- 量子計算在醫(yī)學(xué)圖像處理中的潛力
- 阿里商旅整體差旅解決方案
- 浙江天臺歷史文化名城保護規(guī)劃說明書
- 邏輯思維訓(xùn)練500題
- 第八講 發(fā)展全過程人民民主PPT習(xí)概論2023優(yōu)化版教學(xué)課件
- 實體瘤療效評價標準RECIST-1.1版中文
- 企業(yè)新春茶話會PPT模板
- GB/T 19185-2008交流線路帶電作業(yè)安全距離計算方法
- DIC診治新進展課件
- 公路工程施工現(xiàn)場安全檢查手冊
評論
0/150
提交評論