#include <stdio.h>
int main()
{
int i = 0,a=0,b=2,c =3,d=4;
i = a++ && ++b && d++;
printf("a = %d\nb = %d\nc = %d\nd = %d\n", a, b, c, d);
return 0;
}
求输出结果
分析:
a++:先使用后++ ,a++(见第15篇http://t.csdnimg.cn/OWoCO)即结果是0,0是假,由&&运算法则,++b和d++不会执行
如果改成
#include <stdio.h>
int main()
{
int i = 0, a = 0, b = 2, c = 3, d = 4;
i = a++||++b||d++;
printf("a = %d\nb = %d\nc = %d\nd = %d\n", a, b, c, d);
return 0;
}
求输出结果
分析:
a++先使用后++,先使用a值为0,结果为假,由||的运算法则,继续执行判断,++b,先++,b为3
,后使用,为真,停止执行d++的判断