- 相關(guān)推薦
c語(yǔ)言學(xué)習經(jīng)驗總結體會(huì )
小編來(lái)給大家分享C語(yǔ)言學(xué)習心得啦!
這篇C語(yǔ)言指針學(xué)習經(jīng)驗總結主要是我入職以來(lái)學(xué)習C指針過(guò)程中的點(diǎn)滴記錄。文檔里面就不重復書(shū)上說(shuō)得很清楚的概念性東西,只把一些說(shuō)得不清楚或理解起來(lái)比較費解的東西做一下講解,希望能達到以下三個(gè)目的
(1)通過(guò)寫(xiě)這些東西,把我腦袋中關(guān)于C的模糊的知識清晰化。
(2)給初轉C的同事們一點(diǎn)提示和幫助。
(3)也希望各位前輩檢查一下文檔中是否有理解偏差的地方。
1 指針的概念分解
指針是一個(gè)特殊的變量,它里面存儲的數值被解釋成為內存里的一個(gè)地址。 要搞清一個(gè)指針需要搞清指針的四方面的內容:
1.指針的類(lèi)型
2.指針所指向的類(lèi)型
3.指針的值或者叫指針所指向的內存區
4.還有指針本身所占據的內存區
先聲明幾個(gè)指針?lè )胖?zhù)做例子:
例一:
(1)int *ptr;
(2)char *ptr;
(3)int **ptr;
(4)int (*ptr)[3];
(5)int *(*ptr)[4];
1.1 指針的類(lèi)型
從語(yǔ)法的角度看,你只要把指針聲明語(yǔ)句里的指針名字去掉,剩下的部分就是這個(gè)指針的類(lèi)型。這是指針本身所具有的類(lèi)型。所以分析下例一中各個(gè)指針的類(lèi)型:
(1)int *ptr; //指針的類(lèi)型是int *
(2)char *ptr; //指針的類(lèi)型是char *
(3)int **ptr; //指針的類(lèi)型是 int **
(4)int (*ptr)[3]; //指針的類(lèi)型是 int(*)[3]
(5)int *(*ptr)[4]; //指針的類(lèi)型是 int *(*)[4]
所以找出指針的類(lèi)型的方法是不是很簡(jiǎn)單?
1.2 指針所指向的類(lèi)型
當你通過(guò)指針來(lái)訪(fǎng)問(wèn)指針所指向的內存區時(shí),指針所指向的類(lèi)型決定了編譯器將把那片內存區里的內容當做什么來(lái)看待。從語(yǔ)法上看,你只須把指針聲明語(yǔ)句中的指針名字和名字左邊的指針聲明符 *去掉,剩下的就是指針所指向的類(lèi)型。例如:
(1)int *ptr; //指針所指向的類(lèi)型是int
(2)char *ptr; //指針所指向的的類(lèi)型是char
(3)int **ptr; //指針所指向的的類(lèi)型是 int *
(4)int (*ptr)[3]; //指針所指向的的類(lèi)型是 int()[3]
(5)int *(*ptr)[4]; //指針所指向的的類(lèi)型是 int *()[4]
在指針的算術(shù)運算中,指針所指向的類(lèi)型有很大的作用。
指針的類(lèi)型(即指針本身的類(lèi)型)和指針所指向的類(lèi)型是兩個(gè)概念。當對C越來(lái)越熟悉時(shí),你會(huì )發(fā)現,把與指針攪和在一起的“類(lèi)型”這個(gè)概念分成“指針的 類(lèi)型”和“指針所指向的類(lèi)型”兩個(gè)概念,是精通指針的關(guān)鍵點(diǎn)之一。有些教材書(shū)上寫(xiě)得很差,就把指針的這兩個(gè)概念攪在一起了,所以看起書(shū)來(lái)前后矛盾,越看越糊涂。
【c語(yǔ)言學(xué)習經(jīng)驗總結體會(huì )】相關(guān)文章:
5月C語(yǔ)言學(xué)習社會(huì )實(shí)踐報告11-14
C語(yǔ)言實(shí)訓學(xué)習心得總結(通用13篇)06-23
c語(yǔ)言實(shí)訓報告心得體會(huì )(精選7篇)11-02
初一學(xué)習經(jīng)驗總結(精選12篇)07-26
個(gè)人學(xué)習經(jīng)驗總結(通用16篇)07-25
化學(xué)學(xué)習教學(xué)經(jīng)驗總結(精選13篇)01-27