我不明白以下摘录来自Accelerated C ++:
从
开始因为||是左联想的,和 因为相对优先权 ||,==和 - ,
r == 0 || r == rows - 1 || c == 0 || C == cols - 1意味着与我们放置所有它时相同 括号中的子表达式:
((r == 0 || r ==(rows - 1))|| c == 0)|| c ==(cols - 1)
直到
Otherwise, it does something else, which we must now define.
我不明白这一点。你怎么用你自己的话告诉我一样的?
答案 0 :(得分:5)
如果你想要评估一系列条件,让我们说“如果x是1或y是2,那么调用函数foo()”然后执行第二次测试没有意义(y是2)你已经知道x是1. ||运营商的工作原理如下:
i( x == 1 || y == 2 ) {
foo();
}
如果x == 1,则不会计算表达式y == 2,因为没有必要。这称为短路评估,如果评估费用昂贵,可以节省大量时间。
如果这不是您所询问的问题,请更明确地提出您的问题。