原题:
给定条件:
unsigned int a = 1, b = 2, c = 3, d = 4;
float f = 1.0;
f =(((a-b>d-c)?a++:b++),a*b);求f的结果。
(解析见代码注释)
#include <stdio.h>
int main(){
unsigned int a=1,b=2,c=3,d=4;
float f=1.0;
printf("%u\n",a-b); // 结果为-1 用补码作为结果:-1+2*32=4294967295
printf("%u\n",b-a); // 结果为1
f=(((a-b>d-c)?a++:b++),a*b); //实际a-b>d-c是4294967295>1
printf("%f\n",f);
return 0;
}