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

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

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

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

          指針只保存地址。

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

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

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

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

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

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

          int i = 5;

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

          char ch = 'A';

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

          int *p = &i;

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

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

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

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

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

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

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

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

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

          在使用指針之前,

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

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

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



          posted on 2005-12-28 00:27 北國狼人的BloG 閱讀(356) 評論(0)  編輯  收藏 所屬分類: 達(dá)內(nèi)學(xué)習(xí)總結(jié)
          主站蜘蛛池模板: 合作市| 来凤县| 汉沽区| 肇庆市| 额敏县| 顺义区| 大渡口区| 自治县| 长丰县| 蓝田县| 阿拉善盟| 太白县| 二连浩特市| 鲁甸县| 理塘县| 交城县| 蕲春县| 邹平县| 盐池县| 澄城县| 砚山县| 柘城县| 海南省| 玉山县| 颍上县| 沛县| 神池县| 健康| 宝丰县| 萝北县| 萨迦县| 禹城市| 大埔区| 团风县| 阿拉善盟| 绥宁县| 蓬溪县| 林周县| 舒兰市| 岳西县| 英山县|