void 的含義以及作用

2021-10-12 04:58:36 字數 862 閱讀 9736

指標是乙個位址,有兩個屬性,乙個是起始位址,乙個是長度,起始位址告訴編譯器從**開始定址,位址長度由編譯器根據指標所指物件的型別進行推斷,如int佔4位元組,double佔8位元組。int從指定位址向後尋找4位元組作為變數的儲存單元 。double從指定位址向後尋找8位元組作為變數的儲存單元

這裡補充一點:不同型別的指標+1跳過的位元組數是不同的。

void

*vp

//說它特別是因為它沒有型別

//或者說這個型別不能判斷出指向物件的長度

type *p; 

vp=p;

//不需轉換

//只獲得變數/物件位址而不獲得大小

type *p=

(type*

)vp;

//轉換型別也就是獲得指向變數/物件大小

*vp//錯誤 

因為void指標只知道,指向變數/物件的起始位址

而不知道指向變數/物件的大小(佔幾個位元組)所以無法正確引用

比如int a=10;

int*p=

&a;cout<<

*p<1.傳參:通用型別

可以作為函式模板,鍊錶等引數的通用引數。在使用時,只需要強制型別轉換就可以。

2.強制型別轉換

有時候由於過載等的干擾,導致需要轉換成void *,來進行取位址。

例如,(void *)obj.member,就可以取到member的位址;直接&(obj.member)取到的實際上是obj的開始位址。

3.指向0的位址

(void *)0,指向全是0的位址,相當於null。

void及void指標含義的深刻解析

void 的含義 void 即 無型別 void 則為 無型別指標 可以指向任何資料型別。void 指標使用規範 void 指標可以指向任意型別的資料,亦即可用任意資料型別的指針對 void 指標賦值。例如 int pint void pvoid pvoid pint 不過不能 pint pvoid...

void及void指標含義的深刻解析

void 的含義 void 即 無型別 void 則為 無型別指標 可以指向任何資料型別。void 指標使用規範 void 指標可以指向任意型別的資料,亦即可用任意資料型別的指針對 void 指標賦值。例如 int pint void pvoid pvoid pint 不過不能 pint pvoid...

void指標的作用

最近對void指標的用法比較困惑,在網上搜了一下,稍微整理分享一下 void 指標可以指向任意型別的資料,亦即可用任意資料型別的指針對 void 指標賦值。例如 int pint void pvoid pvoid pint 不過不能 pint pvoid 如果要將 pvoid 賦給其他型別指標,則需...