空指標和void 指標

2021-07-04 19:29:04 字數 989 閱讀 7659

空指標不指向任何物件,在試圖使用乙個指標之前可以檢查它是否為空。以下列出幾個生成空指標的方法:

int

*p1=nullptr;

int*p2=0;

int*p3=null;

得到空指標最直接的辦法就是用字面值nullptr來初始化指標,這是c++11新標準引入的一種方法。nullptr是一種特殊型別的字面值,它可以被轉換成任意其他的指標型別。另一種方法就如對p2的定義一樣,也可以通過將指標初始化為字面值0生成空指標。

過去的程式還會用到乙個名為null的預處理變數來給指標賦值,這個變數在標頭檔案cstdlib中定義,它的值就是0.在新的標準下,現在的c++程式最好使用nullstr,同時盡量避免使用null。

只要指標擁有乙個合法值,就能將它用在條件表示式中。和採用算術值作為條件遵循的規則類似,如果指標的值為0,條件取false:

int ival=

1024;

int *pi=

0; //pi合法是乙個空指標

int *pi2=&ival; //pi2是乙個合法的指標,存放著ival位址

if(pi) //pi的值是0,因此條件的值是false

......

.if(pi2) //pi2指向ival,因此它的值不是0,條件的值是true

......

.

void* 指標

void*是一種特殊型別的指標,可用於存放任意物件的位址。但是我們對該位址中到底是乙個什麼型別的物件並不了解。

double obj=3.14,*pd=&obj;

void pv=&obj; //正確,void可以存放任意型別物件的位址,obj可以是任意型別的物件

pv=pd; //pv可以存放任意型別的指標

利用void*指標能做的事情比較有限:拿它和別的指標比較,作為函式的輸出和輸入,或賦給另外乙個void*指標。不能直接操作void*指標所指的物件。

空指標和void 型別指標

今天,有個師弟問我 師兄,空指標和void 型別指標是怎樣的?當時,我大概的說法是 1 空指標是沒有指向的指標,將暫時用不到的指標定義成空指標,能防止誤用。2 而void 型別的指標是有指向的指標,但它的指向的資料的型別暫時不確定,所以先弄成void 型別,後期一般要強制轉換的。回來後,發現這種說法...

空指標 void 指標 new及delete

如題分別總結這些和指標有關的一些知識點 1.指向任意型別的指標void 很多人誤以為void 型別的指標就是空指標,這是不對的。void 型指標,表示定義乙個指標,但不指定它指向那種型別的資料。void 型別的指標作為一種通用的指標,可以和其他任何型別的指標 函式指標除外 相互轉化而不需要型別強制轉...

3 1 28 void型別指標和空指標詳解

1 void 指標宣告 void main300 2 void 指標用途 void 可以接收任何型別指標的賦值,任何指標都可以賦值給空型別的指標,用於儲存位址 void main301 3 學習函式memset memset返回值就是乙個空型別,作用是對記憶體沒意義位元組進行挨個挨個賦值 void ...