title: Confusion in ternary operator and typecasting
body: <p>I gone through this question -</p>
  
  <p>why the result of : <code>1 ? (int *)0 : (void *)0</code>
  <br>differs to the result of :
  <code>1 ? (int *)0 : (void *)1</code></p>
  
  <p>How it is differ ? It should be <code>0</code> or <code>(int*)0</code>.<br>
  How to check the result ?
  <br>Where we can use such type of expression ?</p>