久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: 徹底搞定C指針(共46頁pdf下載)寫得很通俗易懂 [打印本頁]

作者: zjlzdf    時(shí)間: 2018-11-2 16:49
標(biāo)題: 徹底搞定C指針(共46頁pdf下載)寫得很通俗易懂
徹底搞定C指針



前言1
目  錄2
修訂說明3
A類:規(guī)范化3
B類:更正3
C類:明晰化4
D類:編譯器4

第壹篇  變量的內(nèi)存實(shí)質(zhì)5
1.先來理解C語言中變量的實(shí)質(zhì)5
2.賦值給變量6
3.變量在哪里?(即我想知道變量的地址)7

第貳篇  指針是什么?8
1.指針是什么東西8
第叁篇  指針與數(shù)組名11
1  通過數(shù)組名訪問數(shù)組元素11
2.通過指針訪問數(shù)組元素11
3.?dāng)?shù)組名與指針變量的區(qū)別12
4.聲明指針常量13

第肆篇const int *pi與int *const pi的區(qū)別14
1  從const int i 說起14
2.  const int *pi的語義15
3  再看int *const pi16
4.補(bǔ)充三種情況18

第伍篇  函數(shù)參數(shù)的傳遞20
1.三道考題20
2  函數(shù)參數(shù)傳遞方式之一:值傳遞23
3  函數(shù)參數(shù)傳遞方式之二:地址傳遞26
4  函數(shù)參數(shù)傳遞方式之三:引用傳遞27

第陸篇  指向另一指針的指針30
1  回顧指針概念30
2.指針的地址與指向另一指針地址的指針31
3  一個(gè)應(yīng)用實(shí)例32

第柒篇  函數(shù)名與函數(shù)指針37
1  通常的函數(shù)調(diào)用37
2.函數(shù)指針變量的聲明38
3.通過函數(shù)指針變量調(diào)用函數(shù)38
4.調(diào)用函數(shù)的其它書寫格式39
5.定義某一函數(shù)的指針類型42
6  函數(shù)指針作為某個(gè)函數(shù)的參數(shù)44

如上圖所示,內(nèi)存只不過是一個(gè)存放數(shù)據(jù)的空間,就好像我的看電影時(shí)的電影院中的座位一樣。電影院中的每個(gè)座位都要編號(hào),而我們的內(nèi)存要存放各種各樣的數(shù)據(jù),當(dāng)然我們要知道我們的這些數(shù)據(jù)存放在什么位置吧!所以內(nèi)存也要象座位一樣進(jìn)行編號(hào)了,這就是我們所說的內(nèi)存編址。座位可以是遵循“一個(gè)座位對(duì)應(yīng)一個(gè)號(hào)碼”的原則,從“第 1 號(hào)”開始編號(hào)。而內(nèi)存則是按一個(gè)字節(jié)接著一個(gè)字節(jié)的次序進(jìn)行編址,如上圖所示。每個(gè)字節(jié)都有個(gè)編號(hào),我們稱之為內(nèi)存地址。好了,我說了這么多,現(xiàn)在你能理解內(nèi)存空間這個(gè)概念嗎?

我們繼續(xù)看看以下的 C/C++語言變量聲明:
int i;
char a;
每次我們要使用某變量時(shí)都要事先這樣聲明它,它其實(shí)是內(nèi)存中申請(qǐng)了一個(gè)名為 i 的整型變量寬度的空間(DOS 下的 16 位編程中其寬度為 2 個(gè)字節(jié)),和一個(gè)名為 a 的字符型變量寬度的空間(占 1 個(gè)字節(jié))。

     圖中可看出,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 = 30;
a = ’t’;
你當(dāng)然知道個(gè)兩個(gè)語句是將 30 存入 i 變量的內(nèi)存空間中,將“t”字符存入 a 變量的內(nèi)存空間中。我們可以利用這樣的形象來理解啦:

3.變量在哪里?(即我想知道變量的地址)

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


1.指針是什么東西

指針,想說弄懂你不容易啊!我們?cè)S多初學(xué)指針的人都要這樣感慨。我常常在思索它,為什么呢?其實(shí)生活中處處都有指針,我們也處處在使用它。有了它我們的生活才更加方便了。沒有指針,那生活才不方便。不信?你看下面的例子。  這是一個(gè)生活中的例子:比如說你要我借給你一本書,我到了你宿舍,但是你人不在宿舍,于是我把書放在你的2 層 3 號(hào)的書架上,并寫了一張紙條放在你
的桌上。紙條上寫著:你要的書在第2 層 3 號(hào)的書架上。當(dāng)你回來時(shí),看到這紙條,你就知道了我借與你的書放在哪了。你想想看,這張紙條的作用,紙條本身不是書,它上面也沒有放著書。那么你又如何知道書的位置呢?因?yàn)榧垪l上寫著書的位置嘛!其實(shí)這張紙條就是一個(gè)指針了。它上面的內(nèi)容不是書本身,而是書的地址,你通過紙條這個(gè)指針找到了我借給你的這本書。 那么我們C/C++中的指針又是什么呢?請(qǐng)繼續(xù)跟我來吧,下面看一條聲明一個(gè)指向整型變量的指針的語句:
int *pi;
pi 是一個(gè)指針,當(dāng)然我們知道啦,但是這樣說,你就以為 pi 一定是個(gè)多么特別的東西了。其實(shí),它也只過是一個(gè)變量而已。與上一篇中說的變量并沒有實(shí)質(zhì)的區(qū)別。不信你看下面圖:


(說明:這里我假設(shè)了指針只占 2 個(gè)字節(jié)寬度,實(shí)際上在 32 位系統(tǒng)中,指針的寬度是4 個(gè)字節(jié)寬的,即 32位。) 由圖示中可以看出,我們使用“int *pi”聲明指針變量  ——  其實(shí)是在內(nèi)存的某處聲明一個(gè)一定寬度的內(nèi)存空間,并把它命名為 pi。你能在圖中看出pi 與前面的i、a  變量有什么本質(zhì)區(qū)別嗎?沒有,當(dāng)然沒有!pi 也只不過是一個(gè)變量而已嘛!那么它又為什么會(huì)被稱為“指針”?關(guān)鍵是我們要讓這個(gè)變量所存儲(chǔ)的內(nèi)容是什么。現(xiàn)在我要讓 pi 成為具有真正“指針”意義的變量。請(qǐng)接著看下面語句:
pi = &i;
你應(yīng)該知道  &i 是什么意思吧!再次提醒你啦:這是返回 i 變量的地址編號(hào)。整句的意思就是把 i 地址的編號(hào)賦值給 pi,也就是你在 pi 里面寫上 i 的地址編號(hào)。結(jié)果如下圖所示:

你看,執(zhí)行完 pi=&i 后,在圖示中的內(nèi)存中,pi 的值是 6。這個(gè) 6 就是i變量的地址編號(hào),這樣 pi 就指向了變量 i了。你看,pi 與那張紙條有什么區(qū)別?pi 不就是那張紙條嘛!上面寫著 i的地址,而 i 就是那個(gè)本書。你現(xiàn)在看
懂了嗎?因此,我們就把pi 稱為指針。所以你要記住,指針變量所存的內(nèi)容就是內(nèi)存的地址編號(hào)!好了,現(xiàn)在我們就可以通過這個(gè)指針 pi 來訪問到 i 這個(gè)變量了,不是嗎?看下面語句:
printf("%d", *pi);
那么*pi 什么意思呢?你只要這樣讀它:pi 的內(nèi)容所指的地址的內(nèi)容(嘻嘻,看上去好像在繞口令了),就是 pi 這張“紙條” 上所寫的位置上的那本  “書”—— i 。你看,Pi 的內(nèi)容是 6,也就是說 pi 指向內(nèi)存編號(hào)為 6 的地址。*pi嘛,就是它所指地址的內(nèi)容,即地址編號(hào)6上的內(nèi)容了,當(dāng)然就是30 這個(gè)“值”了。所以這條語句會(huì)在屏幕上顯示30。也就是說 printf("%d", *pi)等價(jià)于printf("%d", i) ,請(qǐng)結(jié)合上圖好好體會(huì)吧!各位還有什么疑問?
到此為止,你掌握了類似&i、*pi 寫法的含義和相關(guān)操作嗎?總的一句話,我們的紙條就是我們的指針,同樣我們的 pi 也就是我們的紙條!剩下的就是我們?nèi)绾螒?yīng)用這張紙條了。最后我給你一道題:程序如下。
char  a,*pa;
a = 10;
pa = &a;
*pa = 20;
printf("%d", a);
你能直接看出輸出的結(jié)果是什么嗎?如果你能,我想本篇的目的就達(dá)到了。好了,就說到這了。Happy Study! 在下篇中我將談?wù)劇爸羔樀闹羔槨奔磳?duì)
int **ppa;
中 ppa 的理解。

完整的pdf格式文檔51黑下載地址(共46頁):
徹底搞定C指針.pdf (328.7 KB, 下載次數(shù): 788)



作者: zgf123456    時(shí)間: 2019-2-28 11:00
剛好在學(xué)習(xí)c指針 有些問題不明白  找些資料
作者: tigerzq    時(shí)間: 2019-2-28 13:35
學(xué)好這個(gè),c語言就算入門了。
作者: thmoasmary    時(shí)間: 2020-3-17 08:36
學(xué)了這個(gè)就可以隨意操作數(shù)據(jù)了
作者: wxl514    時(shí)間: 2020-3-18 13:37
C指針真是比較燒腦,這個(gè)解說形象易懂,學(xué)習(xí)了。
作者: 格拉摩根尊者    時(shí)間: 2020-3-31 12:56
c指針學(xué)了一年了,到這里來看看
作者: carlson-chuo    時(shí)間: 2020-4-4 16:12
下載學(xué)習(xí),感謝分享。
作者: honglu    時(shí)間: 2020-5-8 13:40
學(xué)一下指針找一下資料

作者: huiyuan316    時(shí)間: 2020-5-16 18:55
這個(gè)真的不錯(cuò),贊!
作者: tieq1952    時(shí)間: 2020-6-7 08:19
謝謝分享!!!
作者: Swjie    時(shí)間: 2020-6-10 14:15
剛好在學(xué)習(xí)c指針 有些問題不明白
作者: jiuweiled    時(shí)間: 2020-7-28 21:05
謝謝分享! 學(xué)單片機(jī)到現(xiàn)在,一直被指針困擾!
作者: yygdzjs    時(shí)間: 2020-8-13 11:09
簡(jiǎn)潔實(shí)用,對(duì)有點(diǎn)基礎(chǔ),似懂非懂不錯(cuò)的. 謝謝!
作者: 淡定120    時(shí)間: 2020-8-27 09:09
學(xué)好這個(gè),c語言就算入門了
作者: ycx1018    時(shí)間: 2020-10-15 15:54
看看,感覺比較好理解
作者: yongd    時(shí)間: 2021-12-19 20:19
學(xué)習(xí)一下指針
作者: 776803701    時(shí)間: 2022-2-9 14:58
新手,剛好在轉(zhuǎn)行軟件,很有用
作者: cqwzhmc    時(shí)間: 2022-2-10 16:56
文檔清晰
作者: mimidog111    時(shí)間: 2022-2-23 12:24
C指針真是比較燒腦,這個(gè)解說形象易懂,學(xué)習(xí)了
作者: caocl2011    時(shí)間: 2022-3-10 14:39
一直搞不明白,洗完能通過這本書搞清楚
作者: 2992179673    時(shí)間: 2022-3-12 08:35
nice!!!
作者: wf72663    時(shí)間: 2022-5-18 10:37
謝謝分享! 學(xué)單片機(jī)到現(xiàn)在,一直被指針困擾
作者: jizhongbiao    時(shí)間: 2022-5-19 14:39
要是學(xué)過匯編,肯定不會(huì)覺著指針難搞。
作者: william1111    時(shí)間: 2023-8-1 14:54
謝謝分享,一直被指針困擾
作者: wellhope    時(shí)間: 2023-8-2 14:37
指針一直搞不太明白,努力學(xué)習(xí)學(xué)習(xí)。謝謝!
作者: 大漠落日    時(shí)間: 2024-3-14 09:04
只會(huì)簡(jiǎn)單的指針應(yīng)用,復(fù)雜的還要慢慢學(xué)習(xí)
作者: 烏牛巴巴    時(shí)間: 2024-3-27 18:55
努力學(xué)習(xí)爭(zhēng)取把指針弄懂
作者: ly_zhy    時(shí)間: 2024-12-23 18:34
下載學(xué)習(xí),感謝分享。




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产乱码精品一品二品 | 午夜免费视频 | av福利网 | 国产欧美一区二区在线观看 | 91久久国产综合久久 | 精品国产欧美一区二区三区成人 | 精品国产91久久久久久 | 亚欧精品| 亚洲国产精品99久久久久久久久 | 国产高清视频 | 一级免费毛片 | 视频在线一区 | 国产精品不卡 | 免费看国产片在线观看 | 一区二区成人 | 欧美日韩在线电影 | 久久久www | 欧美日一区二区 | 国产精品综合色区在线观看 | 国产精品久久久久婷婷二区次 | 亚洲 欧美 另类 综合 偷拍 | 免费看一区二区三区 | 国产精品a久久久久 | 99热精品在线观看 | 国产精品一区久久久久 | 欧美黄色小视频 | 久久精品99国产精品日本 | 黄片毛片免费观看 | 欧美三级电影在线播放 | 国产人成在线观看 | 91资源在线 | 青青激情网 | 蜜桃av鲁一鲁一鲁一鲁 | 99久久99| 2019天天操 | 国产精品久久久久久久毛片 | 五月网婷婷 | 欧美日韩视频 | 97伦理最新伦理 | 国产精品一区免费 | 欧美精品一区二区三区蜜桃视频 |