1. 程式人生 > >(void)0和0的區別及用法

(void)0和0的區別及用法

(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型別後,這些都不可以了。