概念:
指標如同路標一樣指向某個位址,而在此指標指向的是記憶體位址。
用法:
(一)宣告
當要宣告一個指標有兩種做法,兩種方法的結果是一樣的
int *p;
int* p;
在此以int型態作為範例,int可以為任意資料型態,p為自定義名稱
(二)取址運算子
當要得到一個變數的記憶體位置的時候會使用"&",這是取址運算子,實際用法入下:
int a;
printf("a的記憶體位址:%d",&a);
只要加上&即代表該變數的記憶體位址。
在(一)中我們宣告了指標*p,但是這還只是一個空指標(就像一個沒寫任何東西的路牌),結合(二)我們就可以給*p一個位址,用法如下:
p=&a;
這讓變數p儲存了變數a的記憶體位置。
(三)提領運算子
現在p儲存了a的位址,那麼我們也可以直接透過p來改變a的值,這時就需要"*",提領運算子
int a=5; //a初值5
int *p; //宣告指標p
p=&a; //把a的位址給指標p
*p=10; //透過提領運算子將值改變為10
printf("%d",a); //印出結果
基本上可以將*p視為a,所以執行結果應為10。