深入探究 Void 之謎:大小及超越
代表空型的 void 概念經常激發程式設計師的好奇心。一個基本問題出現了:空洞的大小是多少?
理解空洞的本質
嘗試確定空洞的大小使我們得到一個關鍵的認識:空洞沒有尺寸。它缺乏像其他資料類型那樣佔用空間的內在特徵。這種固有的空性阻止了它被宣告為變數。
考慮這個例子:
void n; // Compilation error
GCC 的意外行為
令人驚訝的是,GNU C 編譯器(GCC) 使用sizeize (void) 時返回大小1。這似乎與虛空沒有大小的觀念相矛盾。然而,這種行為並不是 void 本質的真實反映,而是 GCC 特有的怪癖。
Void 指標和記憶體分配
具有特殊類型的 Void 指標void * 通常用於儲存位址,無論其基礎資料類型為何。當使用malloc(sizeof(void))分配記憶體時,沒有分配實際的記憶體。相反,返回一個空指標。
遞增空指標
範例中的指標 p 引用空位址。遞增 p (p ) 通常會依其指向的資料類型的大小遞增其值。然而,由於 p 是一個 void 指針,它的增量操作是未定義的,並且在不同的編譯器中有所不同。
以上是C 中「void」的大小是多少?的詳細內容。更多資訊請關注PHP中文網其他相關文章!