赋值符号, 赋值表达式 条件语句“条件中不能含有赋值符号,但是赋值表达式可以包含于条件表达式中例:if(a=b) t=a; 错误 if((a=b)>0) t=a; 正确”为什么第一句错误 第二句正确

问题描述:

赋值符号, 赋值表达式 条件语句
“条件中不能含有赋值符号,但是赋值表达式可以
包含于条件表达式中
例:if(a=b) t=a; 错误
if((a=b)>0) t=a; 正确”
为什么第一句错误 第二句正确

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的操作.