C語言 指針的賦值運算
可以將一個變量的地址賦給指針,也可以在指針變量之間相互賦值。
(1)將變量的地址賦給指針
將變量的地址賦給指針,例如:
float x;
float px, py;
px=&x;
py=&x;
上述定義語句定義了一個float型變量X,又定義了兩個float型指針px、py,之后將變量x的地址賦給指針px、py,即px、py中存放的都是變量x的地址。
(2)將一個指針的值賦給另一個指針
相同類型的指針之間是可以相互賦值的,例如:
int a;
int p=&a,q;
q=p;
指針p指向a,當使用賦值語句q=p,將指針p的值賦給q時,q中存儲的也是變量a的地址,所以,p、q都指向a。
(3)對指針賦空值
在定義指針時,如果沒有給指針賦值,指針就是懸空指針。懸空指針是不安全的,如果程序設計人員不想給變量初始化,可以給變量賦空值,說明指針不指向任何單元。
空值用NULL表示。NULL是一個常量,在stdio.h頭文件中定義,使用形式為:
p=NULL;
也可以直接為指針變量賦值0,其形式為:
p=0;
或
p='\0';
為指針賦空值NULL (或0 )并不是將指針P指向0地址單元,而是明確表明指針P不指向任何地址空間。
和普通變量一樣,指針也有全局指針和局部指針,同樣也有局部靜態(tài)指針。對于全局指針和局部靜態(tài)指針,如果沒有初始化,系統(tǒng)自動為其賦值0。但局部指針不會被自動初始化,因此指向哪里并不確定。建議程序設計人員在程序設計中對于局部指針或初始化或賦空值。
點擊加載更多評論>>