З n3290 (C ++ 03 використовує подібний текст), пункт 4.10, перетворення покажчиків [conv.ptr], параграф 1 (наголос зроблено на моєму):
1 Постійна нульового вказівника - це інтегральний константний вираз (5.19) першого значення цілого типу, яке обчислюється нулем, або першого значення типу std :: nullptr_t. Нульова константа вказівника може бути перетворена в тип вказівника; результатом є значення нульового покажчика цього типу, яке можна відрізнити від будь-якого іншого значення покажчика об’єкта або типу покажчика функції. Таке перетворення називається перетворенням нульового покажчика. [...]
int()
є таким інтегральним константним виразом першого значення цілочисельного типу, яке обчислюється рівним нулю (це просто!), і, отже, може використовуватися для ініціалізації типу покажчика. Як бачите, 0
це не єдиний інтегральний вираз, який має особливу форму.