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';