国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

C語言指針學習經驗總結淺談

2020-01-26 16:21:27
字體:
來源:轉載
供稿:網友

   這篇C語言指針學習經驗總結主要是我入職以來學習C指針過程中的點滴記錄。文檔里面就不重復書上說得很清楚的概念性東西,只把一些說得不清楚或理解起來比較費解的東西做一下講解,希望能達到以下三個目的

1.通過寫這些東西,把我腦袋中關于C的模糊的知識清晰化。
2.給初轉C的同事們一點提示和幫助。
3.也希望各位前輩檢查一下文檔中是否有理解偏差的地方。
1 指針的概念分解
      指針是一個特殊的變量,它里面存儲的數值被解釋成為內存里的一個地址。 要搞清一個指針需要搞清指針的四方面的內容:

1.指針的類型
2.指針所指向的類型
3.指針的值或者叫指針所指向的內存區
4.還有指針本身所占據的內存區
先聲明幾個指針放著做例子:

例一:

(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 指針所指向的類型
     當你通過指針來訪問指針所指向的內存區時,指針所指向的類型決定了編譯器將把那片內存區里的內容當做什么來看待。從語法上看,你只須把指針聲明語句中的指針名字和名字左邊的指針聲明符 *去掉,剩下的就是指針所指向的類型。例如:

(1)int *ptr; //指針所指向的類型是int

(2)char *ptr; //指針所指向的的類型是char

(3)int **ptr; //指針所指向的的類型是 int *

(4)int (*ptr)[3]; //指針所指向的的類型是 int()[3]

(5)int *(*ptr)[4]; //指針所指向的的類型是 int *()[4]

在指針的算術運算中,指針所指向的類型有很大的作用。

    指針的類型(即指針本身的類型)和指針所指向的類型是兩個概念。當對C越來越熟悉時,你會發現,把與指針攪和在一起的“類型”這個概念分成“指針的 類型”和“指針所指向的類型”兩個概念,是精通指針的關鍵點之一。有些教材書上寫得很差,就把指針的這兩個概念攪在一起了,所以看起書來前后矛盾,越看越糊涂。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 昔阳县| 新沂市| 周宁县| 普陀区| 南乐县| 湖南省| 新巴尔虎左旗| 海林市| 环江| 兴仁县| 湖州市| 珠海市| 繁昌县| 昆明市| 兴国县| 青岛市| 界首市| 金山区| 仁布县| 准格尔旗| 上栗县| 霍林郭勒市| 屏南县| 广安市| 含山县| 衡南县| 东乡| 昔阳县| 大名县| 南开区| 荣成市| 乐昌市| 金华市| 杭锦旗| 沙雅县| 新田县| 锡林郭勒盟| 榆树市| 商丘市| 香河县| 松阳县|