当我用 C 编写程序时,遇到了一个问题。 && 不计算第二个操作数,如果第一个为假。我知道这被称为短路行为。但是我想要执行第二个操作数,请看下面的代码知道为什么?
while(a-- && b--){
//some statements
}
请告诉我完成任务的不同方法。非常感谢!
最佳答案
如果 a 和 b 足够小以至于 a*b 不会溢出:
while( (a--) * (b--) )
{...}
如果它们可以很大:
while( ((a--) ? 0xf : 0) & ((b--) ? 0xf : 0) )
{...}
关于c - C中的评估&&运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26199426/