Указатель NULL является константой со значением нуля, определенным в нескольких стандартных библиотеках, включая iostream.
В большинстве операционных систем программам не разрешается обращаться к памяти по адресу 0, поскольку эта память зарезервирована операционной системой. Однако адрес памяти 0 имеет особое значение; он сигнализирует, что указатель не предназначен для указания на доступную ячейку памяти. Но по соглашению, если указатель содержит нулевое (нулевое) значение, предполагается, что он ничего не указывает.
Ссылки не указатели.
Ссылка должна быть инициализирована для ссылки на действительный объект или . [Замечание: в частности, нулевая ссылка не может существовать в хорошо определенной программе , поскольку единственным способом создания такой ссылки было бы привязать ее к «объекту», полученному путем разыменования нулевого указателя , что вызывает неопределенные поведение. Как описано в 9.6, ссылка не может быть привязана непосредственно к битовому полю. ]
Null указатель, конечно, не указывает на «действительный объект или функцию», и в комитете по стандартизации нет желания вводить нулевые ссылки.
В чем причина & q и q не одинаково? если addres было 0, то почему с & я получаю адрес memeory. – Step
выше, я объясняю, почему nullpointer q печатает значение 0. Адрес не равен нулю, поэтому & q печатает местоположение памяти. – Aryan