若有:
int a=1,b=2,c=3;
则表达式 !a&&(b||c) 的值为_
答案是0
!a的值是0,所以!a&&(b||c)也是0
优先判断&&,左侧表达式!a,由于a=1,所以!a就是0。
&&操作符要求两侧表达式都是真,整个表达式才是真。当左侧为假时,右侧就不计算了。结果直接是假,也就是0
若有:
int a=1,b=2,c=3;
则表达式 !a&&(b||c) 的值为_
优先级:() ! &&
b||c为真
!a为假
假&&任何数为假
结果为 0
优先顺序()>!>&&.优先计算(b||c),右边为真,计算!a,因为a=1,所以!a=0, &&符号要求两边同时为真才为真,但是双目运算符&&是从左往右计算,先算左边的!a=0,0在C语言里面另外的含义就是非(假)的意思,所以左边的表达式已经为假,故右边在C程序里面就不用计算了,所以答案直接就是0