指標變數
定義:指向一般變數,存放的值為變數位址(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;
}
文章標籤
全站熱搜
