C语言运算符=的优先级小于>,因此表达式t=x>0是先进行判断x>0,而后将判断的结果(真为1,假为0)赋值给变量t,与 语句if(x>0) t=x完全是两码事。
t=x>0;等价于:if(x>0)t=1;else t=0;