close
指標變數
定義:指向一般變數,存放的值為變數位址(address)。
宣告格式: 資料型態 *指標變數
ex:
int value=5;
int *ptr=&value;
範例
/*指標變數*/ #include<stdio.h> void fun(int *fptr) { *fptr=5; //指標指向的值改成5,即value變成5 } int main() { int value=1; int *ptr=&value; fun(ptr); printf("%d",value); return 0; }
雙重指標
定義:指向指標的指標,存放指標變數的位址(address)。
宣告格式: 資料型態 **雙重指標
ex:
int value=5;
int *ptr=&value;
int **p=&ptr;
如上圖,假設雙重指標宣告為**p
*p 指向指標變數值1460
**p為指向一般變數值5
範例
/*雙向指標 pointer to pointer*/ #include<stdio.h> int value=0; void changePtr(int **ptr) //透過雙重指標改變指標變數的值 { *ptr=&value; //改變指標變數的值,即改變localPtr存放的值 } int main() { int localValue=1; int *localPtr=&localValue; changePtr(&localPtr); printf("%d\n",*localPtr); //經過changPtr函式,localPtr指標變數改指向value變數 return 0; }
文章標籤
全站熱搜