隨筆-159  評論-114  文章-7  trackbacks-0
          指針一個種特殊的變量,用來存放其他變量的地址。

          定義一個變量,就會分配內(nèi)存,就會開空間,有地址,地址與變量的值無關(guān)系。變量地址不會改變。

          int theVariable = 5;
          int *pPointer = &theVariable;

          那么尋找變量:
          1.通過變量名,可以訪問變量。
          2.通過地址,可以找到變量。(地址唯一,不變)

          指針只保存地址。

          一個變量的地址是有意義的,可以進(jìn)行運(yùn)算(+/-數(shù)字,相減,比較)。

          指針就是一個用來保存地址的特殊變量。

          =================================

          由于地址有類型,所以指針也有類型。(不信?只知道地址,如果不知道類型,取幾個字節(jié)無從獲知)。

          int類型的地址就是四個字節(jié)。

          所以一定要明確  地址需要賦予一個類型的概念。

          int i = 5;

          取地址符號,會取得有類型的地址,&i(整型變量的地址)

          char ch = 'A';

          &ch,就是字符類型的地址

          int *p = &i;

          這個語句的含義:定義一個類型是int的指針變量p,并將i的地址給p,p只存儲了地址。

          指針類型必須與地址類型一致。

          指針的類型由它所指向的存儲空間的內(nèi)容的類型來確定,什么類型的變量,就用什么類型指針。

          任何數(shù)據(jù)類型,都有指針。

          指針是用來保存變量的地址,所以int *p = 2000; 不可以!!

          指針+1一定是找到下一個變量。有類型信息進(jìn)而找到下一個同類型的變量。

          int i = 100;
          int *p = &i;
          char ch = 'a';
          p = &ch;

          錯!指針類型嚴(yán)格匹配。

          可以給指針賦一個NULL,NULL表示內(nèi)存0號單元,起始位置。不可以讀,也不可以寫。禁止訪問。
          試圖訪問,段錯誤。

          在使用指針之前,

          ===========================

          char *p = "hello";//存于常量區(qū),不可以修改
          "hello"一個字符串,也就是一個字符數(shù)組,p的地址就是這個字符數(shù)組第一個元素的地址:一個char類型的地址。
          p[0] 就是'h'。

          ===========================



          posted on 2005-12-28 00:27 北國狼人的BloG 閱讀(350) 評論(0)  編輯  收藏 所屬分類: 達(dá)內(nèi)學(xué)習(xí)總結(jié)
          主站蜘蛛池模板: 鲜城| 榆树市| 津市市| 安庆市| 临沂市| 泸西县| 民丰县| 类乌齐县| 格尔木市| 遵义市| 青铜峡市| 青河县| 申扎县| 开平市| 中阳县| 嘉义市| 腾冲县| 滨海县| 宁河县| 项城市| 陵川县| 封开县| 广平县| 西充县| 景德镇市| 类乌齐县| 宁陵县| 班戈县| 吕梁市| 东辽县| 连州市| 开平市| 梁河县| 米易县| 广宗县| 砚山县| 牟定县| 隆安县| 繁昌县| 内丘县| 宜川县|