(void)0相當於宏NULL,NULL本身的含義為“空”,在c語言代表“不存在、不確定”的含義。
0不能簡單的理解為“沒有”的意思,在c語言及二進制中,0和1代表的是“一件事物的正反兩個方面“,0是一種明確的狀態,不是沒有含義。
舉例:
1、就像一個led燈開關一樣,0代表關,1代表開。”關“是一種明確的狀態,代表燈沒有亮,”開“也是一種明確的狀態,代表燈亮了。”空“代表什么呢?代表沒有看到那盞燈(未確定),不知道現在是”開“還是”關“,甚至是不是存在那么一盞燈,都是未知的(未定義)。
2、二進制的0和1,可以理解為一張紙的正反面,它們之間是相互依存的,相互證明的關系,二者缺一不可,否則無論是只有1還是只有0,都沒有了變化,只是一個死板的數了。參考老子的道德經,“有無相生,難易相成,長短相形,高下相傾,音聲相和,前后相隨”,結合這句話來理解二進制再好不過了。
void類型的作用:
規則1:任何類型可以轉換為void類型,來顯示的表明對該值的丟棄。
規則2:void類型不可以轉換為其他類型,void指針除外。
用途:空,0,假,之間的區別?
“空”表示一種不確定或者不存在,不可以作為條件,也不可以給其他變量賦值為空。
0,可以表示為數字0,也可以在條件語句里表示假
假,邏輯變量,在條件語句中表示假。
舉例:
if(條件為真)
執行語句;
if(條件為假)
不執行
if(條件為空)
報錯!因為空不是一種明確的狀態。
當我們想明確的表示該值不存在或者放棄該值的時候,可以將相應的值轉換為void類型。
舉例:
void fun1(int a); //該函數明確表示沒有返回值,如果沒有void,C語言默認返回int類型的值。
(void)(a=13); //明確的拋棄表達式a=3的值,默認a=3的值為右值3。
(void)0; //明確的將0的類型改為void,因為0可以在條件表達式中表示為假,也可以當作int類型給變量賦值,當0變為void類型后,這些都不可以了。