淺談c++中指針的運用與常見問題_第1頁
已閱讀1頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、淺談淺談C中指針的運用與常見問題中指針的運用與常見問題指針是CC語言學習的根基,主要體現(xiàn)在其靈活的運用方式。靈活地運用指針,可有效表示可直接處理內存地址、動態(tài)分配內存、復雜的數(shù)據(jù)結構、更簡單有效的處理字符串和數(shù)組。因此強化對指針的認識、理解和運用是學習CC編程的重中之重。1指針的概念指針是一個相對特殊的變量,其中存儲的數(shù)值被解釋為內存中的一個地址。理解指針首先要明確四個方面的內容:指針的類型、指向的類型、指針的值和指針本身所占據(jù)的內存區(qū)

2、。在指針的定義語句中把變量名(pointer)去掉,得到這個指針的類型。這各個類型是指針本身所具有的類型。例如:定義intpointer,指針的類型為int;定義int(pointer)[4],指針的類型為int()[4];指針的類型和指針所指向的類型是兩個不同概念。在通過指針來訪問指針所指向的內存區(qū)時,指針所指向的類型決定了編譯器將把那片內存區(qū)里的內容當做什么來看待。從語法上出發(fā),把指針聲明語句中的指針變量名和變量名左邊的指針聲明符(

3、)去掉,就是指針所指向的類型。例如:定義intpointer,指針所指向的類型為int;定義int(pointer)[4],指針所指向的類型為int()[4];指針的值是指針本身存儲的數(shù)值,這個值被編譯器當作一個地址而不是一般的數(shù)值。在32位程序里,所有類型的指針的值都是養(yǎng)成良好的習慣,定義指針變量時對其進行初始化操作,在沒有地址空間可指向的情況下,賦值為NULL,以便后繼程序的錯誤檢測:intp1錯誤編程習慣intp2=NULL良好編

4、程習慣指針越界。最長見的越界錯誤多發(fā)生于數(shù)組元素讀寫過程,由于未檢測數(shù)組的長度,會操作數(shù)組空間后的連續(xù)內存區(qū)域,而這些區(qū)域已經(jīng)不屬于本程序的控制范圍。和前兩種指針錯誤不同的是,指針越界錯誤通常不會造成直接的程序終止,而是隱藏的更深,進而對程序后期調試造成不可重現(xiàn)的錯誤。所以,在操作數(shù)組結構時,務必注意對長度的判斷,可避免此類指針越界錯誤。3指針與引用的關系在學習C程序設計語言設計算法的過程中,經(jīng)常會用到引用這個概念,而且大家也發(fā)現(xiàn)引用和

5、指針很相似。經(jīng)過教學和實踐研究發(fā)現(xiàn),引用和指針的確有很多相似之處,但兩者決不相同,而且使用引用解決實際問題在許多方面存在優(yōu)勢。引用與指針的聲明方式不同引用是已存在的變量的別名,具體聲明方式為:數(shù)據(jù)類型&別名=變量(或對象)名。而指針是指向一塊內存地址的變量,具體聲明方式為:數(shù)據(jù)類型指針變量名。從聲明方式不難看出,聲明引用時必須將引用指向某個對象,同時這個對象的值不能為空。而定義指針時則不必初始化。也就是說在某個時候,指針的值可能為空值,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論