徹底搞定c語(yǔ)言指針

徹底搞定c語(yǔ)言指針

ID:14718690

大小:75.50 KB

頁(yè)數(shù):41頁(yè)

時(shí)間:2018-07-30

徹底搞定c語(yǔ)言指針_第1頁(yè)
徹底搞定c語(yǔ)言指針_第2頁(yè)
徹底搞定c語(yǔ)言指針_第3頁(yè)
徹底搞定c語(yǔ)言指針_第4頁(yè)
徹底搞定c語(yǔ)言指針_第5頁(yè)
資源描述:

《徹底搞定c語(yǔ)言指針》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)

1、徹底搞定C語(yǔ)言指針1.語(yǔ)言中變量的實(shí)質(zhì)要理解C指針,我認(rèn)為一定要理解C中“變量”的存儲(chǔ)實(shí)質(zhì),所以我就從“變量”這個(gè)東西開始講起吧!先來(lái)理解理解內(nèi)存空間吧!請(qǐng)看下圖:內(nèi)存地址→ 6     7  8     9  10     11     12     13-----------------------------------------------------------------。。。

2、  

3、  

4、  

5、  

6、  

7、  

8、  

9、.。-----------------------------------------------------------

10、------如圖所示,內(nèi)存只不過(guò)是一個(gè)存放數(shù)據(jù)的空間,就好像我的看電影時(shí)的電影院中的座位一樣。每個(gè)座位都要編號(hào),我們的內(nèi)存要存放各種各樣的數(shù)據(jù),當(dāng)然我們要知道我們的這些數(shù)據(jù)存放在什么位置吧!所以內(nèi)存也要象座位一樣進(jìn)行編號(hào)了,這就是我們所說(shuō)的內(nèi)存編址。座位可以是按一個(gè)座位一個(gè)號(hào)碼的從一號(hào)開始編號(hào),內(nèi)存則是按一個(gè)字節(jié)一個(gè)字節(jié)進(jìn)行編址,如上圖所示。每個(gè)字節(jié)都有個(gè)編號(hào),我們稱之為內(nèi)存地址。好了,我說(shuō)了這么多,現(xiàn)在你能理解內(nèi)存空間這個(gè)概念嗎?我們繼續(xù)看看以下的C、C++語(yǔ)言變量申明:intI;chara;每次我們要使用某變量時(shí)都要事先這樣申明它,它其實(shí)是內(nèi)存中申請(qǐng)

11、了一個(gè)名為i的整型變量寬度的空間(DOS下的16位編程中其寬度為二個(gè)字節(jié)),和一個(gè)名為a的字符型變量寬度的空間(占一個(gè)字節(jié))。我們又如何來(lái)理解變量是如何存在的呢。當(dāng)我們?nèi)缦律昝髯兞繒r(shí):intI;chara;內(nèi)存中的映象可能如下圖:內(nèi)存地址→  6     7  8     9     10     11   12     13------------------------------------------------------------------。。。

12、  

13、  

14、  

15、  

16、  

17、  

18、  

19、.。-----------------------

20、-------------------------------------------變量名

21、→i   ←

22、→a ←

23、圖中可看出,i在內(nèi)存起始地址為6上申請(qǐng)了兩個(gè)字節(jié)的空間(我這里假設(shè)了int的寬度為16位,不同系統(tǒng)中int的寬度是可能不一樣的),并命名為i.a在內(nèi)存地址為8上申請(qǐng)了一字節(jié)的空間,并命名為a.這樣我們就有兩個(gè)不同類型的變量了。2.賦值給變量再看下面賦值:i=30a=‘t’你當(dāng)然知道個(gè)兩個(gè)語(yǔ)句是將30存入i變量的內(nèi)存空間中,將‘t’字符存入a變量的內(nèi)存空間中。我們可以這樣的形象理解啦:內(nèi)存地址→  6     7  8     9     

24、10     11   12     13-----------------------------------------------------------------------。。。

25、  30     

26、 ‘t’ 

27、  

28、  

29、  

30、  

31、.。-----------------------------------------------------------------------

32、→i   ←

33、→a ←

34、3.變量在哪里?(即我想知道變量的地址)好了,接下來(lái)我們來(lái)看看&i是什么意思?是取i變量所在的地址編號(hào)嘛!我們可以這樣讀它:返回i變量的地址

35、編號(hào)。你記住了嗎?我要在屏幕上顯示變量的地址值的話,可以寫如下代碼:printf(“%d”,&i);以上圖的內(nèi)存映象所例,屏幕上顯示的不是i值30,而是顯示i的內(nèi)存地址編號(hào)6了。當(dāng)然實(shí)際你操作的時(shí),i變量的地址值不會(huì)是這個(gè)數(shù)了。這就是我認(rèn)為作為初學(xué)者們所應(yīng)想象的變量存儲(chǔ)實(shí)質(zhì)了。請(qǐng)這樣理解吧!最后總結(jié)代碼如下:intmain(){inti=39;printf(“%d”,i);  //①printf(“%d”,&i); //②}現(xiàn)在你可知道①、②兩個(gè)printf分別在屏幕上輸出的是i的什么東西???好啦!下面我們就開始真正進(jìn)入指針的學(xué)習(xí)了。二、指針是什

36、么東西想說(shuō)弄懂你不容易??!我們?cè)S多初學(xué)指針的人都要這樣的感慨。我常常在思索它,為什么呢?其實(shí)生活中處處都有指針。我們也處處在使用它。有了它我們的生活才更加方便了。沒有指針,那生活才不方便。不信?你看下面的例子。這是一個(gè)生活中的例子:比如說(shuō)你要我借給你一本書,我到了你宿舍,但是你人不在宿舍,于是我把書放在你的2層3號(hào)的書架上,并寫了一張紙條放在你的桌上。紙條上寫著:你要的書在第2層3號(hào)的書架上。當(dāng)你回來(lái)時(shí),看到這張紙條。你就知道了我借與你的書放在哪了。你想想看,這張紙條的作用,紙條本身不是書,它上面也沒有放著書。那么你又如何知道書的位置呢?因?yàn)榧垪l上寫著書

37、的位置嘛!其實(shí)這張紙條就是一個(gè)指針了。它上面的內(nèi)容不是書本身,而是書的地址,你通

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

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

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(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)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。