j=!ch && i++;的执行顺序是: (1)如果!ch为“非零”(真),继续执行i++; (2)如果!ch为"零”(假),则不执行i++.由于ch='#',为“真”,所以!ch==0(为假),因此表达式按(2)进行,即i++得不到执行,i保留原来的值(1)。而j==0(假)
1 按照优先级的顺序:后自增运算符 大于 逻辑非运算符 大于 逻辑与运算符,j=!ch&&i++等价于j=(!ch)&&(i++)因为(!ch)等于false,所以i++不执行
1楼、2楼皆正解!