C语言短路法则
作者:互联网
int i=0,a=0,b=2,c=3,d=4,e=1; // int i=0,a=1,b=2,c=3,d=4,e=1; // i=a++&&++b&&d++; i=a++||++b||d++||++e; printf("a=%d, b=%d, c=%d, d=%d, e=%d",a,b,c,d,e);
a++先运算再加,++a先加再运算
a=0
i=a++&&++b&&d++此处由于遵循a++的运算规则先运算再++,因此此处先使用逻辑与进行运算再++,因此此处先使用a=0进行运算,由于0为假所以整个逻辑与表达式都为假,因此此处不再进行后续运算。
a=1
i=a++&&++b&&d++此处由于遵循a++的运算规则先运算再++,因此此处先使用逻辑与进行运算再++,因此此处先使用a=1进行运算,由于1为真所以整个逻辑与表达式继续进行后续运算,直到运算结束或者遇到逻辑假为止(操作数为0)。
从左至右进行时,若遇到运算符左边的操作数是 0(逻辑假),则停止运算。
a=0
i=a++||++b||d++
此处由于遵循a++的运算规则先运算再++,因此此处先使用逻辑与进行运算再++,因此此处先使用a=0进行运算,由于此处a=0所以继续进行逻辑或运算,直到运算结束或者遇到逻辑假(操作数为0)为止
a=1
i=a++||++b||d++
此处由于遵循a++的运算规则先运算再++,因此此处先使用逻辑与进行运算再++,因此此处先使用a=1进行运算,由于此处a=1所以不会继续进行逻辑或运算直接结束逻辑或运算。
从左至右进行时,若遇到运算符左边的操作数是 1(逻辑真),则停止运算。
记住!短路原则是 与(&&) 或(||) 才有。
标签:逻辑,法则,运算,++,短路,C语言,&&,此处,进行 来源: https://www.cnblogs.com/xing-29391/p/16296764.html