360该题考查“与”“或”的关系和运算
这点对于我们初学者多少会有点生涩难懂 必须用例子来举一反三
首先
int main()
{
int i = 0,g=0, a = 0, b = 2, c = 3, d = 4;
i = a++ && ++b && d++;
printf("%d %d %d %d", a, b, c, d);
return 0;
}
本题考查&&的关系
因为“a++”这一项 a=0,可知a为假,所以该表达式“i = a++ && ++b && d++”必定全为假
所以不执行 只进行“a++”
即便为a=1,后边不变
运行结果如下:
其次
int main()
{
int i = 0,g=0, a = 0, b = 2, c = 3, d = 4;
i = a++ || ++b || d++;
printf("%d %d %d %d", a, b, c, d);
return 0;
}
第二种问题 || 的考察
因为“a++”这一项 a=0,可知a为假,但是根据“||”的概念,我们向后看,可以看到“++b”为真,所以我们可以确定表达式为真,就可以不再往后看了,因为不论“d++”为真为假,都不能改变该表达式为真的事实,所以该表达式“i = a++ && ++b && d++”中“d++”不执行
只进行“a++”,“++b”,a=1,b=3
运行结果: