next up previous contents
Next: 指標算術 Up: 指標(pointers) Previous: 指標(pointers)   Contents

指標

  1. 每個變數會存在記憶體的某個位置,每個記憶體的位置會被付與一個位址,可以使用運算子 & 存取這個位址。
    #include <stdio.h>
    
    int main ()
    {
       int  var1;
       char var2[10];
    
       printf("Address of var1 variable: %x\n", &var1  );
       printf("Address of var2 variable: %x\n", &var2  );
    
       return 0;
    }
    
  2. 指標是一個變數型態 (type) ,宣告時必須在變數前方加上 *,表示變數內容為此變數在記憶體中的位址。
    type *var-name;
    
  3. 各種型態變數指標
    int    *ip;    /* pointer to an integer */
    double *dp;    /* pointer to a double */
    float  *fp;    /* pointer to a float */
    char   *ch     /* pointer to a character */
    
  4. 指標的使用。
    #include <stdio.h>
    
    int main ()
    {
       int  var = 20;   /* actual variable declaration */
       int  *ip;        /* pointer variable declaration */
    
       ip = &var;  /* store address of var in pointer variable*/
    
       printf("Address of var variable: %x\n", &var  );
    
       /* address stored in pointer variable */
       printf("Address stored in ip variable: %x\n", ip );
    
       /* access the value using the pointer */
       printf("Value of *ip variable: %d\n", *ip );
    
       return 0;
    }
    
  5. 空 (Null) 指標:其值為 0,不是指到記憶體位址 0 ,而是沒有指到任何的記憶體。
    #include <stdio.h>
    
    int main ()
    {
       int  *ptr = NULL;
    
       printf("The value of ptr is : %x\n", ptr  );
     
       return 0;
    }
    



2015-01-16