在前段时间学习中发现这种写法使用:if来结合&&和||的短路截停功能,实现if判断。
比如要列出某个时间段的年份闰年,就可以通过代码:
if(i%4==0&&i%100!=0||i%400==0) //判断依据是1:能被4整除但是不能被100整除是闰 2:能被400整除是闰
当我们给个2022年时,2044%4是0,&&的左边是一个0,则&&右边不参与计算,此时||左边是非一个0,||右边参与计算 ,2022%400是一个0。所以这个if就是0
if (add<1 || add>p->len) 只有一个||的话此时只要有一个1这个if就是1
总结:&&左边是0时右边直接短路不计算,得到0。反之&&左边是1时右边要计算。
||左边是1时右边直接短路不计算,得到1.反之||左边是0时右边要计算。