如何在C中使用NULL

C语言中空指针的简要指南

几种编程语言利用了空值

去有nil,JavaScript有null,Python有None, 等等。

C有NULL

但是,NULL与其他语言的用法不同。在C中,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.

You can check if a pointer is a null pointer by comparing it to NULL:

#include <stdio.h>

int main(void) {
  int * p_some_variable = NULL;

if (p_some_variable == NULL) { printf(“equal”); } }

In practice, NULL is a constant equivalent to 0, or "\0".

This is why you can set a string to NULL using:

char *a_string = '\0';

Download my free C Handbook


More clang tutorials: