Значение типа указателя, который является указателем на или после конца объекта, представляет адрес первого байта в памяти ([intro.memory]), занятого объектом или первым байт в памяти после окончания памяти, занимаемой объектом, соответственно.
Означает ли это, что значение указателя является адресом объекта?
№
Эта структура предложения "A или B означают X или Y соответственно," читается как "условие A подразумевает X, или, альтернативно, условие B подразумевает Y."
Таким образом, предложение означает оба
Значение типа указателя, который является указателем на объект, представляет адрес первого байта в памяти ([intro.memory]), занятого объект ...
и
Значение типа указателя, который является указателем после конца объекта, представляет адрес первый байт в памяти после окончания памяти, занятой объектом.
соответственно позволили авторам дублировать преамбулу, которую я должен был повторить при ее расширении следующим образом.
И, после всего этого, ваш смысл был Это не совсем правильно даже для первого случая.
Это означает, что указатель, , если , это указатель на объект, представляет адрес первого байта объекта в памяти. Он ничего не говорит о значении любого указателя, если только он не является указателем на ... объект .
Это не означает, что каждое значение указателя является адресом объект, потому что указатели могут быть неинициализированы, или установлены в nullptr
, или установлены в результате необработанного выделения, которое еще не было превращено в объект с размещением new
. Указатель по-прежнему может содержать адрес объекта, который вы просто delete
-d через указатель, а также.
Я знаю, что стандарт не очень легко читать, особенно если вы не привыкли этот стиль (или для Engli sh) - но это означает, что вам нужно приложить некоторые усилия, чтобы прочитать его внимательно .