逻辑运算符中的短路运算符

时间:2025-02-14 08:12:24

短路运算符和普通运算符的区别

  1. 普通的逻辑运算符
    普通的逻辑运算符如“&”,“|”,“!”等,分别表示“与操作”、“或操作”、“非操作”,与操作是规则简单说就是“同真为真”,既与操作的两边都要是真的,输出才为真;或操作类似,“同假为假”,即或操作的两边都为假,输出才为假。
  2. 短路运算符
    短路运算符有两个,分别是“&&”,“||”,两个的意思还是执行与操作和或操作,但是又有不同。
    下面来看两个例子:
    int a=10;
    int b=20;
    int c=10;
    printf((a++>b)&(b++<c));
    printf(a,b);
    
    通过这个例子,我们清楚的知道,与操作左边是假,右边为假,那么结果肯定为假,同时,a的值最后为11,b的值最后为21。我们再来看一个例子:
    int a=10;
    int b=20;
    int c=10;
    printf((a++>b)&&(b++<c));
         printf(a,b);
    
    这个例子中,同样左边为假,右边为假,输出的结果还是假,但是我们发现,这个例子中输出的值和第一次输出的值不同,a的值还是11,但是b的值变成了20。
    这个不同就是短路运算符“&&”造成的,简单来说,短路运算符相当于计算机的一种简便运算,对于与操作,原来是要计算出两边的真假后再进行判断的,但是短路运算只要左边为假之后,根据同真为真的原则,那么右边不用计算都知道结果肯定是假,因此计算机也就没有计算右边“b++”的运算,b的值就还为20;
    而“||”的操作与“&&”类似,当计算机判断左边为真后,根据同假为假的原则,右边不管是真是假,结果都为真,此时计算机也就不去运行右边的表达式,直接得出结果。
短路运算符在日常运算中还是比较常用的,一般来说它和普通运算符没事什么区别,还减少了计算机的计算时间,但是在高级编程中,还是要注意区分。