%p
в printf
форматирует тип указателя.Это позволит различить нулевой указатель и вывести (nil)
, потому что это специальное значение в контексте указателя.Если вы хотите вывести 0 для нулевого указателя, приведите указатель к целому числу и используйте вместо него %d
:
printf("Head: %d\n", (int) front);
Исходный ответ, поскольку он все еще может быть полезен:
NULL
- это макрос, определенный как 0
или ((void *) 0)
, поэтому, если вы установите указатель на NULL
, это точно так же, как установить его на 0
.Это работает с целью объявления нулевых указателей, поскольку память по адресу 0 никогда не будет выделена вашей программе.