C語言中使用空指針的簡要指南
許多編程語言都使用了「null」的概念。
Go 語言使用「nil」,JavaScript 使用「null」,Python 使用「None」等等。
而在C語言中,則使用「NULL」。
然而,C語言中的NULL與其他語言使用方式有所不同。在C語言中,NULL僅用於標識一個空指針。
當我們初始化一個指針時,有時候我們並不知道它要指向什麼。這時NULL就派上用場了:
int *p_some_variable = NULL;
NULL並不是默認可用的:你需要包含stdio.h
標頭文件才能使用它(或者如果你更喜歡的話,可以使用stddef.h
):
#include <stdio.h>
int main(void) {
int *p_some_variable = NULL;
}
否則,C編譯器會報錯:
hello.c:3:26: error: use of undeclared identifier 'NULL'
int *p_some_variable = NULL;
^
1 error generated.
你可以通過將指針與NULL
進行比較來檢查它是否為空指針:
#include <stdio.h>
int main(void) {
int *p_some_variable = NULL;
if (p_some_variable == NULL) {
printf("equal");
}
}
在實際應用中,NULL
是一個等於0
或 "\0"
的常數。
這就是為什麼你可以使用以下方式將字符串設置為NULL:
char *a_string = '\0';