短路现象1例如,具有以下表达式:a&& b&& c仅当a为真(不为0)时,才需要判断b的值;仅当a和b都为真时,才需要判断c的值。
示例查找a,b,c和d的最终值。
main(){int a,b,c,d; a = 0; b = 1; c = 2; d = a ++&& b ++&& - C; printf(“ a =%d b =%d c =%d d =%d ",a,b,c,d);}因为a ++首先判断a的值,然后将其相加,并且a的初始值为0,所以(a ++)为假。
从短路现象中,我们可以看到&&以下等式b ++和-C将不会执行;对于赋值语句,首先将a的值赋给d,然后自加,因此d的值是0,a最终将是1。
执行结果:短路现象2例如,以下表达式|| b || c只要a为真(不为0),就无需判断b和c。
仅当a为假时,才需要判断b的值;仅当a和b均为假时,才需要判断c的值。
求出a,b,c,d的最终值; main(){int a,b,c,d; a = 0; b = 1; c = 2; d = a ++ || b ++ || --c; printf(“ a =%d b =%d c =%d d =%d ",a,b,c,d);}因为a ++首先判断a的值,然后将其相加,并且a的初始值为0,所以(a ++)为假。
从短路现象可以看出,我们需要继续判断||。
b ++的表达式,b ++必须首先确定b的值,b为1,所以b ++为真,从短路现象可以看出,下面的表达式-c不执行;对于赋值语句,不再将a的值赋给Give d,而是将b赋给d,然后将a和b相加,因此d的值是1,a将是1,b将是2。
结果:-END- Yikou Linux作者| Tudou Juushi |整理有关技术文章的传播,版权属于原作者| |如果有任何侵权,请联系以将其删除| [1]一位大学生讲述了代码的历史:我什么时候开始迅速进步的?[2]我在26岁时成为博士生导师,中国电子科技大学的姐姐真是太神奇了! [3] 2020年中国大学毕业生月薪排名[4]大哥的故事:初中开始学习编程,毕业后直接进入微软... [5]中国科学院9名大学生成功设计了64位9月的处理器:成功录音