if(!a)b++:如果!a为真,表达式的值就为1.则执行后面的b++:语句;若为假,则值为0,不执行后面的语句。if(a)b+=2:同上,一样的原理。
先看if (a) b++;上面的语句是将a的值与0进行比较,如果a不等于0,则条件为真,则执行b++,也就是说当a的值不等于0的时候才会执行b++。再看if (!a) b++在c++中!是逻辑否运算符,与上面的条件判断正好相反,即如果a的值是0,则!a=1,则执行b++,也就是说当a的值等于0的时候才会执行b++。