短路运算符
短路运算符有两个,分别是“&&”,“||”,两个的意思还是执行与操作和或操作,但是又有不同。
下面来看两个例子: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;
而“||”的操作与“&&”类似,当计算机判断左边为真后,根据同假为假的原则,右边不管是真是假,结果都为真,此时计算机也就不去运行右边的表达式,直接得出结果。