if(a=2){b=2;c=4;}elsed=3;这个语句没有语法错误(可能会有警告),是可以执行的。但是这个语句永远没有机会执行else部分。a=2赋值表达式的计算结果就是2,当这个表达式出现在if语句逻辑表达式位置上的时候,它的计算结果是被当作逻辑值处理的,在c语言中用整型数表示逻辑量,非零表示“真”,所以这是一个永真式;这个if的逻辑条件永远不会为假。也就是说,这里所表达的逻辑条件并不是“a的内容是否等于2”,而是向变量a中送入数据2。