C Advanced: NULL values

Several programming languages make use of the concept of null.

Go has nil, JavaScript has null, Python has None, and so on.

C has NULL.

NULL however is used differently from other languages. In C, NULL is limited to identifying a null pointer.

When we initialize a pointer, we might not always know what it points to. That’s when it is useful:

int * p_some_variable = NULL;

NULL is not available by default: you need to include stdio.h to use it (or if you prefer, stddef.h:

#include <stdio.h>

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

Otherwise the C compiler will give you an error:

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

Lessons in this unit:

0: Introduction
1: Input and output
2: Variable scope
3: Static variables
4: Global variables
5: Type definitions
6: Enumerations
7: Structures
8: Command line parameters
9: Header files
10: The preprocessor
11: ▶︎ NULL values
12: Boolean values
13: Nesting functions
14: Conversion specifiers
15: Using quotes
16: String length
17: Returning strings
18: Array length
19: Looping through arrays
20: Checking character values
21: Printing percentage signs
22: Troubleshooting: Implicit function declarations

Join my AI Workshop!

The Web Development BOOTCAMP cohort starts in February 2026