外包工

          學 JAVA 學 OO

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            21 隨筆 :: 0 文章 :: 0 評論 :: 0 Trackbacks

          1.指標的宣告

           

          syntax: 指標資料型態(tài) *指標名稱

          eg.

           

               int *no;

              char *str;

           

           

           

           

          2.配置記憶體(malloc-memory allocation)

           

          指標變數(shù)在儲存資料前,需先配置記憶體空間才可使用。

           

          syntax: 指標名稱=(指標資料型態(tài) *)malloc(sizeof(指標資料型態(tài))*長度)

          eg.

           

               int *no;

               char *str;

               //配置 4 int 的空間

               no=(int *)malloc(sizeof(int)*4);

               //配置 20 char 的空間

               str=(char *)malloc(sizeof(char)*20)

           

           

           

           

          3.存取指標所指向的資料-解參(dereference)

           

          指標變數(shù)所儲存的是資料所在的記憶體位址,當在指標變數(shù)前加上*,即可存取其所指的資料,

           

          syntax: *指標名稱

          eg.

           

               //a為一般的整數(shù)變數(shù),ptr_a為指標變數(shù)

               int a=5,*ptr_a;

               //將ptr_a指向a的位址(注意,在此不需另外配置記憶體,為甚麼?)

               ptr_a=&a;

               //*ptr_a=a+1

               (*ptr_a)++;

               //印出 ptr_a,a的內(nèi)容

               printf("ptr_a=%x,*ptr_a=%d,&a=%x,a=%d",ptr_a,*ptr_a,&a,a);

           

           

             

           

           

          4.釋放所配置的記憶體空間(delete)

           

          因為電腦的記憶體空間有限,若要有效的利用,可釋放不用的指標變數(shù)。

           

          (雖然理論上在程式結(jié)束後,所有的空間都會被自動釋放)

           

          syntax: delete(指標名稱)

           

          eg.

           

               char *name;

               //配置 8 char 的空間

               name=(char *)malloc(sizeof(char)*8);

               //將"Alibaba"複製至name陣列中

               strcpy(name,"Alibaba");

               //暫時釋放空間

               delete(name);

               //重新配置更大的空間 20 char

               name=(char *)malloc(sizeof(char)*20);

               //將"Snow White"複製至name陣列中

               strcpy(name,"Snow White");

               //養(yǎng)成好習慣,釋放配置過的空間。

               delete(name);

           

           

           

           

          5.指標的用途

           

               5.1可以讓函數(shù)用傳址呼叫(pass by address)的方式來傳地參數(shù),如此在函數(shù)內(nèi)的改變可以影響到參數(shù)。

               5.2透過動態(tài)地配置(malloc)與釋放(delete)記憶體,可以更有效地利用記憶體空間。

               5.3可以用來模擬一些較進階的程式技巧及資料結(jié)構(gòu),如樹(tree),串列(link-list)等。

          6.想一想

          posted on 2010-10-23 09:36 外包工 閱讀(139) 評論(0)  編輯  收藏 所屬分類: C語言程式設計
          主站蜘蛛池模板: 蓝山县| 秭归县| 慈利县| 湟中县| 石泉县| 古田县| 景洪市| 五华县| 马公市| 淮南市| 德安县| 营山县| 南充市| 班戈县| 甘泉县| 且末县| 平遥县| 河西区| 公主岭市| 芜湖县| 虹口区| 曲沃县| 平潭县| 延边| 丘北县| 东阿县| 海淀区| 武川县| 乌什县| 应城市| 稷山县| 临桂县| 沛县| 香格里拉县| 蓝田县| 朔州市| 镇远县| 陈巴尔虎旗| 中山市| 尼玛县| 永宁县|