Здравствуйте, ValK, Вы писали:
VK>а что такое UB ?????
Unexpected Bayan

(потому что много-много раз уже обсуждалось, и поиск рулит).
Неопределённое поведение (undefined behavior).
Конкретно в твоём случае компилятор (как сишный, так и плюсовый) может подставлять в printf(.... a ....) как содержимое памяти (на которую указывает p), так и числовой литерал.
А его решение зависит от опций (в частности, режима оптимизации).
... << RSDN@Home 1.2.0 alpha rev. 655>>