为什么C语言(x)为1

Python014

为什么C语言(x)为1,第1张

因为B被赋值一个逻辑值(非0即1),它是一个逻辑与的值:当 &&两侧的值均非零时,逻辑值即为1。

现在,x非0,且z<'b'也为真,所以,逻辑值为真,即为1,所以输出是1

从命令的角度讲,是将x的每一bit(2进制中的1和0都占一个bit)与0001的每一bit做与运算.

"&"是"与运算"的意思,1&1=1,其他情况(1&0,0&1,0&0)都=0.

从逻辑的角度来讲,这个命令就是取x的最左边一位.例如x是0011,x&1得到0001,如果x是0110,x&1得到0000.

x+1=x+1当然是不合法的。

因为=左边的x+1是一个右值,不能给右值赋值。

比如,如果x=1,将其代入x+1=x+1后就是1+1=1+1,即2=2。

而2=2显然是错的,因为2不是一个变量(不是左值),不能保存=右边的2。