Re: Marv Rubenstein's message. int i; foo *p; i=0; if(p==i)... What's wrong with this? It's identical to "if(p==(foo *)i)" according to the default expression evaluation rules. Any special meaning of 0 should be handled in the evaluation of (foo *)i.