徹底搞定c指針系列

徹底搞定c指針系列

ID:38340070

大?。?8.00 KB

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

時(shí)間:2019-06-10

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

《徹底搞定c指針系列》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、徹底搞定c指針系列《徹底搞定C指針》第一篇變量的內(nèi)存實(shí)質(zhì)要理解C指針,我認(rèn)為一定要理解C中“變量”的存儲(chǔ)實(shí)質(zhì),所以我就從“變量”這個(gè)東西開(kāi)始講起吧!先來(lái)理解理解內(nèi)存空間吧!請(qǐng)看下圖:內(nèi)存地址→678910111213-----------------------------------------------------------------···

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ù)存放在什么位置吧!所以?xún)?nèi)存也要象座位一樣進(jìn)行編號(hào)了,這就是我們所說(shuō)的內(nèi)存編址。座位可以是按一個(gè)座位一個(gè)號(hào)碼的從一號(hào)開(kāi)始編號(hào),內(nèi)存則是按一個(gè)字節(jié)一個(gè)字節(jié)進(jìn)行編址,如上圖所示。每個(gè)字節(jié)都有個(gè)編號(hào),我們稱(chēng)之為內(nèi)存地址。好了,我說(shuō)了這么多,現(xiàn)在你能理解內(nèi)存空間這個(gè)概念嗎?我們繼續(xù)看看以下的C、C++語(yǔ)言變量申明:inti;chara;每次我們要

11、使用某變量時(shí)都要事先這樣申明它,它其實(shí)是內(nèi)存中申請(qǐng)了一個(gè)名為i的整型變量寬度的空間(DOS下的16位編程中其寬度為二個(gè)字節(jié)),和一個(gè)名為a的字符型變量寬度的空間(占一個(gè)字節(jié))。我們又如何來(lái)理解變量是如何存在的呢。當(dāng)我們?nèi)缦律昝髯兞繒r(shí):inti;chara;內(nèi)存中的映象可能如下圖:內(nèi)存地址→678910111213------------------------------------------------------------------···

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è)不同類(lèi)型的變量了。2.賦值給變量再看下面賦值:i=30a=’t’你當(dāng)然知道個(gè)兩個(gè)語(yǔ)句是將30存入i變量的內(nèi)存空間中,將’t’字符存入a變量的內(nèi)存空間中。我們可以這樣

24、的形象理解啦:內(nèi)存地址→678910111213-----------------------------------------------------------------------···

25、30

26、‘t’

27、

28、

29、

30、

31、··-----------------------------------------------------------------------

32、→i←

33、→a←

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

35、樣讀它:返回i變量的地址編號(hào)。你記住了嗎?我要在屏幕上顯示變量的地址值的話(huà),可以寫(xiě)如下代碼: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(“%dn”,i);//①printf(“%dn”,&i);//②}現(xiàn)在你可知道①、②兩個(gè)printf分別在屏幕上輸出

36、的是i的什么東西啊?好啦!下面我們就開(kāi)始真正進(jìn)入指針的學(xué)習(xí)了。Comeon?。ùm(xù)...)《徹底搞定C指針》第2篇----指針是什么指針,想說(shuō)弄懂你不容易??!我們?cè)S多初學(xué)指針的人都要這樣的感慨。我常常在思索它,為什么呢?其實(shí)生活中處處都有指針。我們也處處在使用它。有了它我們的生活才更加方便了。沒(méi)有指針,那生活才不方便。不信?你看下面的例子。這是一個(gè)生活中的例子:比如說(shuō)你要我借給你一本書(shū),我到了你宿舍,但是你人不在宿舍,于是我把書(shū)放在你的2層3號(hào)的書(shū)架上,并寫(xiě)了一張紙條放在你的桌上。紙條上寫(xiě)著:你

37、要的書(shū)在第2層3號(hào)的書(shū)架上。當(dāng)你回來(lái)時(shí),看到這張紙條。你就知道了我借與你的書(shū)放在哪了。你想想看,這張紙條的作用,紙條本身不是書(shū),它上面也沒(méi)有放著書(shū)。那么你又如何知道書(shū)的位置呢?因?yàn)榧垪l上寫(xiě)著書(shū)的位置嘛!其實(shí)這張紙條就是一個(gè)指針了。它上面的內(nèi)容不是書(shū)本身,而是書(shū)的地址,你通過(guò)紙條這個(gè)指針找到了我借給你的本書(shū)。那么我們C,C++中的指針又是什么呢?請(qǐng)繼續(xù)跟我來(lái)吧,看下面看一個(gè)申明一整型指針變量的語(yǔ)句如下:int*pi;pi是一個(gè)指針,當(dāng)然我們知道啦,但是這樣說(shuō),你就以為pi一定是個(gè)多么特別的東西了。

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

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

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