外包工

学 JAVA 学 OO

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  21 随笔 :: 0 文章 :: 0 评论 :: 0 Trackbacks

1.指標的宣告

 

syntax: 指標資料型態 *指標名稱

eg.

 

     int *no;

    char *str;

 

 

 

 

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

 

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

 

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

eg.

 

     int *no;

     char *str;

     //配置 4 int 的空間

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

     //配置 20 char 的空間

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

 

 

 

 

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

 

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

 

syntax: *指標名稱

eg.

 

     //a為一般的整數變數,ptr_a為指標變數

     int a=5,*ptr_a;

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

     ptr_a=&a;

     //*ptr_a=a+1

     (*ptr_a)++;

     //印出 ptr_a,a的內容

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

 

 

   

 

 

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

 

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

 

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

 

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");

     //養成好習慣,釋放配置過的空間。

     delete(name);

 

 

 

 

5.指標的用途

 

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

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

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

6.想一想

posted on 2010-10-23 09:36 外包工 阅读(134) 评论(0)  编辑  收藏 所属分类: C语言程式设计

只有注册用户登录后才能发表评论。


网站导航: