時々参照はnullにならないというレスがあるけど

void f( int& i ) { printf( "%p\n", &i ); }

int *p = 0;
f( *p );

VC8, g++3.4.5 で普通に 0 と表示される。
規格ではどうか知らないけど。