Небрежно говоря, NULL
или nullptr
- это значение заполнителя для указателей, которые нигде не указывают. Вы не можете хранить значение нигде. Если вы попробуете что-то вроде этого:
int* p = nullptr;
*p = 5;
Скорее всего, ваша программа обработает sh (нет гарантии, что на самом деле не определено, что произойдет, если вы это сделаете).
An int*
не хранит int
. Он может указывать на int
, который содержит значение. Для хранения int
вам нужен объект int
где-то, а не просто указатель:
int x = 0;
int* p = &x;
*p = 42;