Разыменование любого из p
, q
, r
, p + 1
, q + 1
, r + 1
или u + 1
имеет неопределенное поведение, поскольку ни один из этих указателей не указывает на объекты правильного типа.
Вы можете добавить к указателю, чтобы получить другое значение указателя.Это определено только для результатов, которые остаются в пределах одного массива, плюс значение указателя «один за другим» (обработка указателя на один объект как массива длины один).Вы также можете преобразовать указатель в целочисленный тип, чтобы получить значение, определенное реализацией.Выполнение этих действий не требует разыменования указателя.
Добавление к нулевому указателю также является неопределенным поведением, поскольку нулевой указатель не указывает на объект, нет ничего, что могло бы быть «один за другим»"из.