位置:首頁(yè) > 軟件操作教程 > 編程開(kāi)發(fā) > C語(yǔ)言 > 問(wèn)題詳情

C語(yǔ)言 指針的賦值運(yùn)算

提問(wèn)人:劉團(tuán)圓發(fā)布時(shí)間:2020-12-01

可以將一個(gè)變量的地址賦給指針,也可以在指針變量之間相互賦值。

(1)將變量的地址賦給指針 

將變量的地址賦給指針,例如:

    float x;

    float px, py;

    px=&x;

    py=&x;

    上述定義語(yǔ)句定義了一個(gè)float型變量X,又定義了兩個(gè)float型指針px、py,之后將變量x的地址賦給指針px、py,即px、py中存放的都是變量x的地址。

(2)將一個(gè)指針的值賦給另一個(gè)指針 

相同類型的指針之間是可以相互賦值的,例如:

    int a;

    int p=&a,q;

    q=p;

指針p指向a,當(dāng)使用賦值語(yǔ)句q=p,將指針p的值賦給q時(shí),q中存儲(chǔ)的也是變量a的地址,所以,p、q都指向a。

(3)對(duì)指針賦空值

    在定義指針時(shí),如果沒(méi)有給指針賦值,指針就是懸空指針。懸空指針是不安全的,如果程序設(shè)計(jì)人員不想給變量初始化,可以給變量賦空值,說(shuō)明指針不指向任何單元。

    空值用NULL表示。NULL是一個(gè)常量,在stdio.h頭文件中定義,使用形式為:

    p=NULL;

    也可以直接為指針變量賦值0,其形式為:

    p=0;

    或

    p='\0';

    為指針賦空值NULL (或0 )并不是將指針P指向0地址單元,而是明確表明指針P不指向任何地址空間。

    和普通變量一樣,指針也有全局指針和局部指針,同樣也有局部靜態(tài)指針。對(duì)于全局指針和局部靜態(tài)指針,如果沒(méi)有初始化,系統(tǒng)自動(dòng)為其賦值0。但局部指針不會(huì)被自動(dòng)初始化,因此指向哪里并不確定。建議程序設(shè)計(jì)人員在程序設(shè)計(jì)中對(duì)于局部指針或初始化或賦空值。


繼續(xù)查找其他問(wèn)題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部