Logic 什么';(i&x2B;&x2B;&j)的结果是什么?
我理解这个表达有问题Logic 什么';(i&x2B;&x2B;&j)的结果是什么?,logic,operators,increment,Logic,Operators,Increment,我理解这个表达有问题 (i++&&j)+4*i=? // i=4, j=4 结果如何?程序给我25分。我假设在递增之前它实际上给了我21。当我在C中运行它时,我得到了21。(I++&&j)应该计算为1,因为&&是一个逻辑AND运算符。然后4*i,这里的i是5,因为它在最后一次使用评估后增加了,所以1+4*5=21 这正是我如何看待它的配合 编辑 基本上,它取决于所编写语言中的运算符优先级,因此结果不同。我认为它取决于语言(及其编译器),因为它取决于I何时递增,以及&布尔运算符
(i++&&j)+4*i=?
// i=4, j=4
结果如何?程序给我25分。我假设在递增之前它实际上给了我21。当我在C中运行它时,我得到了21。
(I++&&j)
应该计算为1,因为&&
是一个逻辑AND运算符。然后4*i
,这里的i是5,因为它在最后一次使用评估后增加了,所以1+4*5=21
这正是我如何看待它的配合
编辑
基本上,它取决于所编写语言中的运算符优先级,因此结果不同。我认为它取决于语言(及其编译器),因为它取决于
I
何时递增,以及&
布尔运算符如何工作或返回什么
至少在Javascript中,它是这样工作的:
(i++&&j)
首先计算为4&&4,结果为4i
将递增为5
将返回4(truthy)和&4(truthy)
4
将返回4(truthy)和&0(false)
0
将返回0和&4
0
将返回10&&4
-最后一个真实值4
将返回false&&4
false
将返回4&&null&&5
null
将返回特定时刻的日期4&&new Date()
- 等等