title: sizeof of the conditional operator's value ?:
body: <pre><code>#include &lt;stdio.h&gt;  
  int main()  
  { int x = 1;    
  short int i = 2;   
  float f = 3; 
    if(sizeof((x == 2) ? f : i) == sizeof(float))    
    printf("float\n");  
    else if (sizeof((x == 2) ? f : i) == sizeof(short int))     
    printf("short int\n");    
  }  
  </code></pre>
  
  <p>Here the expression <code>((x == 2) ? f : i)</code> evaluates to <code>i</code> which is of type short int.. size of short int =2 whereas sizeof float is 4 byts.output should be "short int" but i m getting output "float"</p>