[C語言] 指標概念與用法




概念:
指標如同路標一樣指向某個位址,而在此指標指向的是記憶體位址。

用法:

(一)宣告
當要宣告一個指標有兩種做法,兩種方法的結果是一樣的

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。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料