if(a=b) t=a; 从语法上并没有错,只是逻辑上有问题,它不并是指a和b相等的意思,而是b赋给a,如果a值非0的话,再执行a->t的赋值.
if((a=b)>0) t=a; 则是:b赋给a,如果a>0再作t=a的操作.