W08-指針指針和指針變量

W08-指針指針和指針變量

ID:40816931

大小:863.50 KB

頁數(shù):54頁

時(shí)間:2019-08-08

W08-指針指針和指針變量_第1頁
W08-指針指針和指針變量_第2頁
W08-指針指針和指針變量_第3頁
W08-指針指針和指針變量_第4頁
W08-指針指針和指針變量_第5頁
資源描述:

《W08-指針指針和指針變量》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、指針是C++的精華,也是學(xué)習(xí)的重點(diǎn)和難點(diǎn)正確地使用指針可編寫簡(jiǎn)潔、高效和通用的程序。錯(cuò)誤的使用指針易使程序運(yùn)行出錯(cuò)或?qū)е孪到y(tǒng)崩潰第8章指針8.1指針和指針變量8.2指針和數(shù)組8.3指針數(shù)組和指向指針的指針8.4指針和函數(shù)8.5new和delete運(yùn)算符8.6引用和其他類型的指針8.7簡(jiǎn)單鏈表及其應(yīng)用第8章指針教室必須有編號(hào),也就是教室的地址。以保證正常的教學(xué)管理。8.1指針和指針變量——基本概念例如,現(xiàn)在1-2節(jié)是我們上課,在教三402。3-4節(jié)可能是020095班,教室中上課的班級(jí)可以變化,但在教三402始終對(duì)應(yīng)著這間教室。與教室類似,計(jì)算機(jī)中的存儲(chǔ)單元也具有這樣

2、的性質(zhì)。每個(gè)單元都必須有它的地址,以及存放在存儲(chǔ)單元的內(nèi)容。由于讀、記代碼很麻煩,因此,C++就將代碼翻譯成人所熟知的自然語言符號(hào)。這些符號(hào)就是代表某個(gè)存儲(chǔ)單元的變量名或者稱為標(biāo)識(shí)符。試想,教室的編碼如果是這樣0x0065FDE4,你是否會(huì)用這個(gè)編碼來管理教室呢?但這個(gè)編碼就是計(jì)算機(jī)內(nèi)存的地址碼。402教室地址教室內(nèi)容教三02A106現(xiàn)在假設(shè),把地址編碼為107的單元用標(biāo)識(shí)符a(如:稱作C++專用教室)代替,那么,a就代表了這個(gè)單元的地址。在C++中,它就是所謂的變量名。107單元地址單元內(nèi)容在算法中,執(zhí)行含有變量名為a的語句或表達(dá)式時(shí),C++首先會(huì)訪問a所代表的單

3、元地址,這個(gè)過程稱為尋址。顯然,如果單元沒有地址,C++就無法找到這個(gè)單元。那么,單元的地址還有其它尋訪辦法嗎?為了回答這個(gè)問題,我們?cè)賮硖接懡淌业墓芾?。a8.1指針和指針變量——基本概念一幢樓有若干個(gè)教室,如果臨時(shí)要找一個(gè)教室來上大課,一種辦法是逐個(gè)尋找哪個(gè)教室空閑,這當(dāng)然很費(fèi)事。還有一種辦法,是到管理教室的教務(wù)室去查找。教務(wù)室的墻壁上有一個(gè)大布袋,它上面分布了全校所有教室的代號(hào)——地址代碼。盡管這個(gè)布袋子上不可能有教室空間,但通過訪問它上面的教室地址就可了解各個(gè)教室的使用信息。例如.........................................

4、...................存放教室地址的布袋子10601班107空顯然,把教室地址存放在布袋上的辦法為教室管理提供很大方便8.1指針和指針變量——基本概念............................................................這種管理和訪問教室的辦法,也被C++的設(shè)計(jì)者采用,它們把類似于存放教室地址的小口袋稱為指針變量。存放教室地址的布袋子C++中,指針是內(nèi)存單元的地址。根據(jù)以上類比分析,指針變量只能存放變量的地址(指針),而不能存放一般的數(shù)據(jù)(學(xué)生)。10601班107空指針這就象布袋上的小口袋只能存放教

5、室的地址,而不可能讓學(xué)生坐在上面上課的性質(zhì)一樣。下面來介紹指針變量的定義和使用。8.1指針和指針變量——基本概念指針變量的定義方式如下:306a307xint*p1;float*p2;inta;floatx;p1306307C++是這樣給p1、p2分配單元從單元圖形可知,指針變量是專用于存放變量地址的。圖中的箭頭是為便于形象地描述而加的。如果再定義普通變量a、x:并且在算法中有如上語句:...p1=&a;p2=&x;那么,執(zhí)行語句的結(jié)果是:p2可以這樣來描述它們的關(guān)系:指針p1指向變量a,p2指向變量x。8.1指針和指針變量——指針變量的說明指針變量的定義方式如下:

6、306a307xint*p1;float*p2;inta;floatx;p1306307C++是這樣給p1、p2分配單元圖示可知,賦值語句是把普通變量的單元地址分別存放到指針變量p1、p2中。這相當(dāng)于把教室的代號(hào)放在布袋里。...p1=&a;p2=&x;p2上述賦值語句中,&是取地址運(yùn)算符,表示取變量a和x的地址。運(yùn)算過程是:先由&取出變量的地址,然后把地址碼賦給指針變量。指針變量的命名除與普通變量相同之外,定義時(shí)還必須在左邊加一個(gè)*,以示被定義的是指針變量,但在算法中卻沒有*。8.1指針和指針變量——指針變量的說明指針變量的定義方式如下:306a307xint*p

7、1;float*p2;inta;floatx;p1306307C++是這樣給p1、p2分配單元...p1=&a;p2=&x;p2在算法中,指針變量的左邊帶*,表示所指單元的內(nèi)容。例如*p1=5;*p2=5.0;雖然都寫成*p1和*p2,但定義語句中的*是告訴編譯系統(tǒng):p1、p2是指針變量這相當(dāng)于:a=5;x=5.0;55.0*p1*p2算法語句中的*則表示*p1和*p2是指針?biāo)竼卧膬?nèi)容。8.1指針和指針變量——指針變量的說明指針變量的定義方式如下:306a307xint*p1;float*p2;inta;floatx;p1306307C++是這樣給p1、p2

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。