已定义char ch=‘#’;int i=1,j;执行j=!ch&&i++以后,i的值是什么?

要详细的解析
2025-02-22 22:37:55
推荐回答(3个)
回答1:

j=!ch && i++;
的执行顺序是:
(1)如果!ch为“非零”(真),继续执行i++;
(2)如果!ch为"零”(假),则不执行i++.
由于ch='#',为“真”,所以!ch==0(为假),因此表达式按(2)进行,即i++得不到执行,i保留原来的值(1)。而j==0(假)

回答2:

1

按照优先级的顺序:
后自增运算符 大于 逻辑非运算符 大于 逻辑与运算符,
j=!ch&&i++等价于
j=(!ch)&&(i++)

因为(!ch)等于false,所以i++不执行

回答3:

1楼、2楼皆正解!