空型別指標(void 的理解

2021-09-02 07:44:50 字數 461 閱讀 8695

void指標是空型別指標,它不指向任何型別,即void指標僅僅是乙個位址,所以空型別指標不能進行指標運算,也不能進行間接引用(因為指標運算和間接引用都需要指標的型別資訊)。

p++;         //error:+、-運算離不開指標型別

*p=20.5; //error:訪問p指向的變數空間需要變數型別資訊

由於其他指標都包含有位址資訊,所以將其他指標的值賦給空型別指標是合法的;反之,將空型別指標賦給其他指標則不被允許,除非進行顯式轉換。

例如: int a=20;

int* ptr=&a;

void *p=ptr; //ok 將整型指標值賦給空型別指標

ptr=p; //error 不能將空型別指標賦給其他指標

ptr=(int*)p; //ok 顯式轉換

空型別指標(void 的理解

原文 void指標是空型別指標,它不指向任何型別,即void指標僅僅是乙個位址,所以空型別指標不能進行指標運算 也不能進行間接引用 因為指標運算和間接引用都需要指標的型別資訊 例如 void p 僅僅表示p存放乙個位址 p error 運算離不開指標型別 p 20.5 error 訪問p指向的變數空...

空指標和void 型別指標

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

空指標和void 指標

空指標不指向任何物件,在試圖使用乙個指標之前可以檢查它是否為空。以下列出幾個生成空指標的方法 int p1 nullptr int p2 0 int p3 null 得到空指標最直接的辦法就是用字面值nullptr來初始化指標,這是c 11新標準引入的一種方法。nullptr是一種特殊型別的字面值,...