天天看點

用C語言讨論“資料void類型”,程式設計補充學習由此開始(第五節)

作者:小萌九尾

昨天我們談了資料類型中的枚舉類型,今天我們來談一談資料類型中的void類型。

大家看到“void”這個單詞,是不是感覺非常熟悉呢,沒錯,這是一個關鍵字,我們平時常常會用在定義函數、方法。

但說來慚愧,學C語言那麼久,到現在為止,我還沒有完全搞懂void的含義,平時隻知道使用void來定義一個方法和函數。

在回顧C語言補充内容的時候,我才正式注意到了void這個概念。

void類型,也叫做無資料類型,換言之,就是沒有資料類型。

那麼void既然是定義無資料類型的,那麼能夠像前兩天說的“枚舉類型”和“基本類型”,應該也能用來定義資料吧。

但我嘗試着使用void來定義變量,卻發現報錯了。

用C語言讨論“資料void類型”,程式設計補充學習由此開始(第五節)

是以,要定義變量的話,還是得給定指定的資料類型才行。

那麼,void類型主要是用在什麼地方呢?

根據網上查閱的相關資料,void主要是用在對函數傳回的限定和對參數傳回的限定。

這句話比較難以了解,我看到這句話的時候,我也有點懵圈。

但進行梳理後,也比較好了解了。

就是void類型主要有三種情況,分别是“函數傳回為空”、“函數參數為空”、“指針指向void”,但是這三種情況,到目前為止我隻能解釋前兩種,對于第三種情況還略有些不明白,或許需要後續進行一個補充。

用C語言讨論“資料void類型”,程式設計補充學習由此開始(第五節)

我們可以使用void來定義函數,但對于主函數main來說,使用void main(){}卻會發現産生警告,這是因為main函數的傳回值是int整數類型,是以要使用int main(){}來作為主方法,兩者的主要差別就在于有無傳回值。

用C語言讨論“資料void類型”,程式設計補充學習由此開始(第五節)

很顯然,函數參數為空有兩種情況,一種是括号内什麼都不添加,而另一種則是添加void。

用C語言讨論“資料void類型”,程式設計補充學習由此開始(第五節)

malloc是記憶體配置設定函數,因為指針指向void我不是很明白,是以這裡舉了一個大家常用的一個記憶體配置設定函數的例子,等我再研究研究或許就明白的差不多了呢。

用C語言讨論“資料void類型”,程式設計補充學習由此開始(第五節)
用C語言讨論“資料void類型”,程式設計補充學習由此開始(第五節)

但顯然,這仍然是存在一些問題的,可是這是根據網上的說法來得到的,顯然是有問題的。

是以我在基于自己的了解上修改了下代碼,也就是根據指針的定義,要使用&這個符号來通路記憶體位址。

可以發現,這樣就是正确的,到目前為止,我就發現void最有效的作用就是不需要強制進行類型轉換,可以幫助簡便程式。

用C語言讨論“資料void類型”,程式設計補充學習由此開始(第五節)

總的來說,void類型其實我們平時用的比較少,是以對這個類型也沒太多概念,今天主要是提及一下,之後若是再遇到了,我會再根據相應的題目寫相應的文章來解釋的。

繼續閱讀