求c语言的运算结果,如图

我想的是x=23吗,之后x--在x在前,先看后面,之后又!x这个是不为零的时候就变为零,为零的时候就是1,那23就是为零,不成立,就结束了,所以它还是原来的23不用变吗?那还是怎么样的,麻烦了谢谢!

img

while(!x)表示当!x为真的时候,也就是x为假的时候才会执行下一次循环,因此该循环只执行一次,先输出x的值23,然后x的值减1变为22

循环只执行1次。0表示假,非零表示真。!22就是 !TRUE=FALSE,结束循环