C语言的问题,求解释

img

把 if(!a) x--;
else if(b); 看成一组,因为int a=0;所以if(!a)为真,x--(x等于x减一);也就是x等于34 。 else if(b);不执行
再把if(c) x=3;
else x=4;看成一组。因为int c=0;所以if(c)为假,不执行。执行else x=4;

最终x等于4.

if(!a)为真x--, x = 34 跳过else if
if(c)为假,走else,x = 4