首先我们需要知道,运算是从左到右开始的,(有括号先算括号)
短路就是当你左边运算完以后发现这个式子在后面的逻辑运算中不需要再往下算已经知道结果了(后面的运算变得没有意义)。
举一个栗子吧
#include <stdio.h>
int main()
{
if(3>4&&5<6)
printf("354");
}
此时算到3>4就短路了,因为逻辑运算符是&&(两边有一个为假就是假)所以右边的5<6都不判断
如果逻辑运算符两边有表达式并且短路的话,叫短路求值
#include <stdio.h>
int main()
{
int a = 1, b = 3, c = -3;
if (b+c && a--)
printf("%d",a);
printf("%d", a);
}
此时发生短路求值,a为1