關於void*與void**的區別

由於void就是不檢查數據類型,所以,對於編譯器來說, void* 和 void** ,甚至後面n個 * ,都是一樣的.


問題的關鍵在於,讓我們這些編程的人可以區分.


原則上,void* 可以是一個一級指針,二級指針,甚至是n級指針.
但我們的使用習慣是, 一個 * 代表一級指針,多級指針就用n個*表示.  


在實際使用的時候, 如果告訴你, void* 是一個n級指針,你不會覺得彆扭嗎?假如是一個多級指針,由於用void*表示,也由於別人使用的時候一個不小心當成1級指針來處理(這種錯誤非常容易出現,絕對不是小心一點就能避免的),bug就出現了.而且由於是void*類型,編譯器不做檢查,錯誤查找也非常麻煩.


所以,習慣上,實際使用的時候,多級指針還是用多個*表示的居多,這樣看着也明白了,用起來也就不那麼容易出錯了.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章