if(a=12)这里只有一个=,是赋值语句,让a=12,所以这个语句就等价于if(a),a非0,为真,所以if成立,执行 a =a+1=13,b=b+1=1,所以答案是A
if(a=12)给你挖了一个坑,可以理解为成立,如果是if(a==12),倒是选B
赋值语句一般认为是恒真式(处理 a=0),因为 在执行 a = 12
这个语句后,a的值变成了 12。
则 if(a=12) 其实是在判断 if(a) , 即 if(12), 在 if 的判断逻辑中非0即为真。因此第一个判断语句命中。
所以一般在 if 中是赋值语句时,只要赋值的右值非0,那么这个判断语句就为真。