tft每日頭條

 > 科技

 > c語言void是什麼意思及用法

c語言void是什麼意思及用法

科技 更新时间:2025-03-13 05:13:30

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

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

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

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

void類型的定義

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

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

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

c語言void是什麼意思及用法(用C語言讨論數據void類型)1

所以,要定義變量的話,還是得給定指定的數據類型才行。

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

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

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

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

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

c語言void是什麼意思及用法(用C語言讨論數據void類型)2

函數返回為空

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

void fun(){//函數返回為空 //沒有return的返回值,這個可以與int定義函數進行一個對比 } int main(){ return 0; }

c語言void是什麼意思及用法(用C語言讨論數據void類型)3

函數參數為空

int fun1(){//函數參數為空 return 0; } int fun2(void){//函數參數為空 return 0; }

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

c語言void是什麼意思及用法(用C語言讨論數據void類型)4

指針指向void

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

void *malloc( size_t size );//類型為void *的指針代表對象的地址,而不是類型 int main(){ void *m; int *n; m = n; printf("%d",m); }

c語言void是什麼意思及用法(用C語言讨論數據void類型)5

c語言void是什麼意思及用法(用C語言讨論數據void類型)6

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

所以我在基于自己的理解上修改了下代碼,也就是根據指針的定義,要使用&這個符号來訪問内存地址。

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

c語言void是什麼意思及用法(用C語言讨論數據void類型)7

總結

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

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved