next up previous contents
Next: 空指標 Up: 指標 Previous: 指標   Contents   DYWANG_HOME

簡介

  1. 每個變數會存在記憶體的某個位置,每個記憶體的位置會被付與一個位址,可以使用運算子 & 存取這個位址。
       int  var1;
       char var2[10];
    
       printf("Address of var1 variable: %x\n", &var1 );
       printf("Address of var2 variable: %x\n", &var2 );
    
  2. 指標 (pointer) 是一種特殊的變數型態 (type),用來存放變數的記憶體位置,也就是指到變數的位址。宣告時必須在變數前方加上 *,表示變數內容為此變數在記憶體中的位址。
    type *var-name;
    
  3. 各種型態變數指標
    int    *ip;
    double *dp;
    float  *fp;
    char   *ch
    
  4. 範例:指標的使用
    [dywang@dyw219 zzz]$ vim pointer1.c
    [dywang@dyw219 zzz]$ cat pointer1.c
    #include <stdio.h>
    
    main () {
    	int var=11;
    	int *p;
    
    	p = &var;
    	printf( "var = %d\n", var );
    	printf( "&var = %x\n", &var );
    	printf( "p = %x\n", p );
    	printf( "*p = %d\n", *p );
    }
    
  5. 編譯
    [dywang@dyw219 zzz]$ gcc -o pointer1 pointer1.c
    
  6. 執行結果
    [dywang@dyw219 zzz]$ ./pointer1 
    var = 11
    &var = 2a378bf4
    p = 2a378bf4
    *p = 11
    



De-Yu Wang 2021-01-11