1 Позвольте D быть объявлением обычного идентификатора, который предоставляет средство для обозначения объекта P в качестве указателя с ограничением на тип T.
2 Если D появляется внутри блока и не имеет внешнего класса хранения, пусть B обозначает блок.Если D появляется в списке объявлений параметров определения функции, пусть B обозначает связанный блок.В противном случае пусть B обозначает блок main (или блок любой функции, вызываемой при запуске программы в автономной среде).
3 В дальнейшем выражение указателя E будет основано на объекте Pесли (в некоторой точке последовательности при выполнении B до оценки E) изменить P так, чтобы он указывал на копию объекта массива, на который он ранее указывал, изменит значение E.137) Обратите внимание, что «на основе»определяется только для выражений с типами указателей.
4 Во время каждого выполнения B пусть L будет любым lvalue с & L на основе P. Если L используется для доступа к значению объекта X, который он обозначает,и X также модифицируется (любым способом), тогда применяются следующие требования: T не должен быть константным.Каждое другое lvalue, используемое для доступа к значению X, должно также иметь свой адрес на основе P. Каждый доступ, который изменяет X, должен также рассматриваться как модифицирующий P, для целей этого подпункта.Если P присваивается значение выражения указателя E, которое основано на другом объекте ограниченного указателя P2, связанном с блоком B2, то либо выполнение B2 должно начинаться до выполнения B, либо выполнение B2 должно заканчиваться доназначение.Если эти требования не выполняются, то поведение не определено.
5 Здесь выполнение B означает ту часть выполнения программы, которая соответствует времени жизни объекта со скалярным типом и длительности автоматического хранения.связанный с B.