导航菜单
首页 >  » 正文

4.执行下列语句后a的值为( ),b的值为( C ). int a, b, c; a=b=c=1; ++a|| ++b &&

4.执行下列语句后a的值为( ),b的值为( C ). int a, b, c; a=b=c=1; ++a|| ++b &&

1
2
3
4
5
6
7
8
9
10
    // 定义3个变量a、b、c
    inta, b, c;
    // 给3个变量赋初值,a=1 b=1 c=1
    a=b=c=1;
    // 逻辑与的优先级高于逻辑或,相当于++a || (++b && ++c)
    // 所以先判断++a是否为真,++a,前置自增后a为2,为真
    // 而此时,由于是逻辑或运算,只要有一个为真,结果就为真,已经可以判定这个表达式的值为真
    // 所以,后面括号中的表达式就不会运算,b为1,c为1
    // 这个行为通常称为“短路求值”
    ++a || ++b && ++c;

相关推荐: