一定义char ch="$";int i=1;j;执行j=!ch&&i++以后,i的值是什么?给我详解.

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/09 08:39:12
一定义char ch=

一定义char ch="$";int i=1;j;执行j=!ch&&i++以后,i的值是什么?给我详解.
一定义char ch="$";int i=1;j;执行j=!ch&&i++以后,i的值是什么?给我详解.

一定义char ch="$";int i=1;j;执行j=!ch&&i++以后,i的值是什么?给我详解.
j=!ch&&i++
把上边的语句转化成 j = (!ch) && (i++); 由此可以看出括号与括号是一个逻辑表达式那么它的值要么是1要么就是0,但到底是多少需要计算括号里边的值 因为'$'它的ACSII码不为0,因此!ch=0,而i++就是先使用之后在自加1那么j = 0 && 1 由此得到答案j = 0 结束之后i = 1;
很奇怪吧,这是一个语法特性,因为对于&&逻辑运算符号来说,如果它的左边是0,那么右边就不用判断结果一定是0,所以i++就没有机会执行了