Avendo sempre lavorato su Windows e Linux su architetture x86 e x86_64 non ho mai visto NULL definito a valori differenti da 0, tuttavia quello che dici è vero, tecnicamente NULL può essere definito come qualunque valore. Per questo anch'io mi sono abituato ad usare la seconda notazione che hai scritto, che ha anche il vantaggio di rendere subito chiaro che si sta lavorando su un puntatore, e non su un intero, un booleano o qualunque altro tipo.

Rispondi quotando