|
![]() | 作者: cash [cash]
![]() |
登录 |
x=y=z=-1 ++x&&++y||++z 为什么在运算后会变成 x=0 y=-1 z=0 应该当算到X等于零时后面的就不应该算了啊 这样的话Z应该等于-1而不应该是0 这是怎么回事啊 |
地主 发表时间: 05/13 13:13 |
![]() | 回复: cimsxiyang [cimsxiyang] ![]() |
登录 |
只是++y不计算 |
B1层 发表时间: 05/13 13:26 |
![]() | 回复: 山鸡 [duck_chen] ![]() |
登录 |
送给你一条规则: 逻辑与运算前为0不必运算后面的算术运算,因为计算机认为其值肯定为0;逻辑或运算前为1不必运算后面的算术运算,因为计算机认为其值肯定为1。 你的式子是:x=y=z=-1;++x&&++y||++z; 那么x肯定是先自加再进行逻辑运算,其值为0是肯定的。 那么后面的算术运算++y系统就没有运算了,因此y的值保留,还为-1,因为系统默认0&&R(R可为表达式)的值为0。但是进行逻辑或运算时,由于前面的值为0而不是1,所以要继续运算后面的式子。因此z为0,现在知道了吗? |
B2层 发表时间: 05/14 01:44 |
![]() | 回复: xjy1234 [xjy1234] ![]() |
登录 |
++x && ++y || ++z 当++x执行后它的值就是0了是假的,&&是怎么定义的啊,有一个为假就全都 是假,所以程序执行玩++x后就不执行后面的了因为它已经可以确定定这个表达式的值了 |
B3层 发表时间: 06/08 05:13 |
![]() | 回复: cainiao110 [cainiao110] ![]() |
登录 |
那请问这个表达式与x++&&y++||z++的运算和输出有什么区别? |
B4层 发表时间: 06/08 11:18 |
![]() | 回复: changfeng [changfeng] ![]() |
登录 |
X++是先赋值在自增 ++X是先自增再赋值 |
B5层 发表时间: 06/08 21:10 |
![]() | 回复: yjfwindows [yjfwindows] ![]() |
登录 |
这有什么用呀。。。。没有太大的实用价值。 |
B6层 发表时间: 06/09 14:26 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号