本帖最后由 戴文婷 于 2014-4-11 10:17 编辑
- int main()
- {
- int x,y,z;
- x=y=z=0;
- //++x ,++在变量前,意思是说。在使用变量前,先执行x=x+1,操作。
- //所以在这句 ++x || (++y && ++z);时,x的值是1
- // || 运算符,如果|| 之前的表达式为1也就是真的时候,||之后的表达式,也就不判断与运算。
- //所以在这里是,<span style="line-height: 1.5;">进行x=x+1 操作,</span><span style="line-height: 1.5;">||判断到x为1,就直接运行到;号。++y,++z没有执行。</span>
复制代码
//++x, ++在变量前,意思是说。在使用变量前,先执行x=x+1,操作。
//所以在这句 ++x || (++y && ++z);时,x的值是1
// || 运算符,如果|| 之前的表达式为1也就是真的时候,||之后的表达式,也就不判断与运算。
//所以在这里是,进行x=x+1 操作,||判断到x为1,就直接运行到;号。++y,++z没有执行。
特别注明: ||运算符,是,两边都为真时 结果为真,有一边为真是,结果也为真,只有当两边都是假时才输入假
true||ture 输出 true
true||false 输出 true
false||true 输出 true
false||false 输出 false
所以,当||之前的表达式为false时,还不能确定||之后的是 true还是false ,也就是不能确定究竟是输出true 还是false,编译器还是会执行||之后的表达式。
但如果 ||之前就是ture,那输出就能确定了。不需要再执行后面的表达式了。直接跳到; 输出ture.
刚写错了。现在改了下
|