Краткое руководство по Null указателям на C
Несколько языков программирования используют концепцию null.
У Go есть nil, у JavaScript null, у Python None и так далее.
C имеет значение NULL.
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 указателем, сравнив его с 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';