指標*p初始化和賦值
阿新 • • 發佈:2021-12-02
定義指標變數
定義指標變數與定義普通變數非常類似,不過要在變數名前面加星號*
,格式為:
datatype *name;
或者
datatype *name = value;
*
表示這是一個指標變數,datatype
表示該指標變數所指向的資料的型別 。例如:
int *p1;
p1是一個指向 int 型別資料的指標變數,至於 p1 究竟指向哪一份資料,應該由賦予它的值決定。再如:
int a = 100; int *p_a = &a;
在定義指標變數 p_a 的同時對它進行初始化,並將變數 a 的地址賦予它,此時 p_a 就指向了 a。值得注意的是,p_a 需要的一個地址,a 前面必須要加取地址符&
和普通變數一樣,指標變數也可以被多次寫入,只要你想,隨時都能夠改變指標變數的值,請看下面的程式碼:
//定義普通變數 float a = 99.5, b = 10.6; char c = '@', d = '#'; //定義指標變數 float *p1 = &a; char *p2 = &c; //修改指標變數的值 p1 = &b; p2 = &d;
*
是一個特殊符號,表明一個變數是指標變數,定義 p1、p2 時必須帶*
。而給 p1、p2 賦值時,因為已經知道了它是一個指標變數,就沒必要多此一舉再帶上*
,後邊可以像使用普通變數一樣來使用指標變數。
也就是說,定義指標變數時必須帶*
,給指標變數賦值時不能帶*
。
int a = 100; int *p = &a; // 也就是,等價於 int a =100; int *p; p = &a;
end!