C中的return NULL
和return 0
之間的區別是什麼?返回值NULL和零差值
是的,我知道0
是一個數字,NULL
是無效的。但我不明白這兩者在編程方面的目的。
另外我相信return 0
不會返回號碼0
爲調用函數,但返回void
。那麼,如果說明return NULL
和return 0
被互換,它會有什麼不同?
C中的return NULL
和return 0
之間的區別是什麼?返回值NULL和零差值
是的,我知道0
是一個數字,NULL
是無效的。但我不明白這兩者在編程方面的目的。
另外我相信return 0
不會返回號碼0
爲調用函數,但返回void
。那麼,如果說明return NULL
和return 0
被互換,它會有什麼不同?
在C
#define NULL ((void*) 0)
這意味着NULL
是void*
類型(無類型的指針)的。並且它的值爲0.
將0或NULL
分配給指針變量沒有區別。 NULL
可能更具可讀性。
請參見:http://c-faq.com/null/macro.html
當您返回零,你真的回零。如果函數簽名將void指定爲返回值,則表示該函數不返回值。在其他一些語言中,這被稱爲「程序」。
大多數情況下(但並非總是),請參閱相同FAQ的[問題5.17](http://c-faq.com/null/machexamp.html),另請參閱:[什麼時候NULL宏不是0?](http: //stackoverflow.com/q/2597142/1606345) –
完全正確。規則有一些深奧的例外。 – teroi
NULL是* not * a'void'。虛空沒有價值,它不存在! –
http://stackoverflow.com/questions/1296843/what-is-the-difference-between-null-0-and-0?rq=1 –
void它是一種類型。空值是一個有效的空值指針 –