b=2;
c=3;
d=4;
Я решил в начало добавить присваивание для a. Но начало строчки я написал, а значение дописать забыл. Получилось:
a=
b=2;
c=3;
d=4;
И это спокойно скомпилировалось и заработало (правда, неправильно). А почему? Потому что Си поддерживает цепочечные присваивания. И где у программиста новая строка -- ему плевать. Он воспринял этот текст следующим образом:
a=b=2;
c=3;
d=4;