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