指針簡(jiǎn)介
指針是C語(yǔ)言中廣泛使用的一種數(shù)據(jù)類型。 運(yùn)用指針編程是C語(yǔ)言最主要的風(fēng)格之一。利用指針變量可以表示各
種數(shù)據(jù)結(jié)構(gòu); 能很方便地使用數(shù)組和字符串; 并能象匯編語(yǔ)言一樣處理內(nèi)存地址,從而編出精練而高效的程序。指
針極大地豐富了C語(yǔ)言的功能。 學(xué)習(xí)指針是學(xué)習(xí)C語(yǔ)言中最重要的一環(huán), 能否正確理解和使用指針是我們是否掌握
C語(yǔ)言的一個(gè)標(biāo)志。同時(shí),指針也是C語(yǔ)言中最為困難的一部分,在學(xué)習(xí)中除了要正確理解基本概念,還必須要多編
程,上機(jī)調(diào)試。只要作到這些,指針也是不難掌握的。
指針的基本概念 在計(jì)算機(jī)中,所有的數(shù)據(jù)都是存放在存儲(chǔ)器中的。 一般把存儲(chǔ)器中的一個(gè)字節(jié)稱為一個(gè)內(nèi)存單
元, 不同的數(shù)據(jù)類型所占用的內(nèi)存單元數(shù)不等,如整型量占2個(gè)單元,字符量占1個(gè)單元等, 在第二章中已有詳細(xì)
的介紹。為了正確地訪問(wèn)這些內(nèi)存單元, 必須為每個(gè)內(nèi)存單元編上號(hào)。 根據(jù)一個(gè)內(nèi)存單元的編號(hào)即可準(zhǔn)確地找到該
內(nèi)存單元。內(nèi)存單元的編號(hào)也叫做地址。 既然根據(jù)內(nèi)存單元的編號(hào)或地址就可以找到所需的內(nèi)存單元,所以通常也把
這個(gè)地址稱為指針。 內(nèi)存單元的指針和內(nèi)存單元的內(nèi)容是兩個(gè)不同的概念。 可以用一個(gè)通俗的例子來(lái)說(shuō)明它們之間
的關(guān)系。我們到銀行去存取款時(shí), 銀行工作人員將根據(jù)我們的帳號(hào)去找我們的存款單, 找到之后在存單上寫入存款、
取款的金額。在這里,帳號(hào)就是存單的指針, 存款數(shù)是存單的內(nèi)容。對(duì)于一個(gè)內(nèi)存單元來(lái)說(shuō),單元的地址即為指針,
其中存放的數(shù)據(jù)才是該單元的內(nèi)容。在C語(yǔ)言中, 允許用一個(gè)變量來(lái)存放指針,這種變量稱為指針變量。因此, 一
個(gè)指針變量的值就是某個(gè)內(nèi)存單元的地址或稱為某內(nèi)存單元的指針。圖中,設(shè)有字符變量C,其內(nèi)容為“K”(ASCII
碼為十進(jìn)制數(shù) 75),C占用了 011A號(hào)單元(地址用十六進(jìn)數(shù)表示)。設(shè)有指針變量 P,內(nèi)容為 011A, 這種情況我們稱
為P指向變量C,或說(shuō) P是指向變量 C的指針。 嚴(yán)格地說(shuō),一個(gè)指針是一個(gè)地址, 是一個(gè)常量。而一個(gè)指針變量卻
可以被賦予不同的指針值,是變。 但在常把指針變量簡(jiǎn)稱為指針。為了避免混淆,我們中約定:“指針”是指地址,
是常量,“指針變量”是指取值為地址的變量。 定義指針的目的是為了通過(guò)指針去訪問(wèn)內(nèi)存單元。
既然指針變量的值是一個(gè)地址, 那么這個(gè)地址不僅可以是變量的地址, 也可以是其它數(shù)據(jù)結(jié)構(gòu)的地址。在一個(gè)
指針變量中存放一
個(gè)數(shù)組或一個(gè)函數(shù)的首地址有何意義呢? 因?yàn)閿?shù)組或函數(shù)都是連續(xù)存放的。通過(guò)訪問(wèn)指針變量取得了數(shù)組或函數(shù)的首
地址, 也就找到了該數(shù)組或函數(shù)。這樣一來(lái), 凡是出現(xiàn)數(shù)組,函數(shù)的地方都可以用一個(gè)指針變量來(lái)表示, 只要該指
針變量中賦予數(shù)組或函數(shù)的首地址即可。這樣做, 將會(huì)使程序的概念十分清楚,程序本身也精練,高效。在C語(yǔ)言中,
一種數(shù)據(jù)類型或數(shù)據(jù)結(jié)構(gòu)往往都占有一組連續(xù)的內(nèi)存單元。 用“地址”這個(gè)概念并不能很好地描述一種數(shù)據(jù)類型或數(shù)
據(jù)結(jié)構(gòu), 而“指針”雖然實(shí)際上也是一個(gè)地址,但它卻是一個(gè)數(shù)據(jù)結(jié)構(gòu)的首地址, 它是“指向”一個(gè)數(shù)據(jù)結(jié)構(gòu)的,
因而概念更為清楚,表示更為明確。 這也是引入“指針”概念的一個(gè)重要原因。
![]() | ![]() .. 定價(jià):¥225 優(yōu)惠價(jià):¥213 更多書籍 |
![]() | ![]() .. 定價(jià):¥133 優(yōu)惠價(jià):¥133.0 更多書籍 |