x==1时,!x表示false,x==0时,!x表示true,
随便代入一个数就可以试出来
比如x = 0
!x 为真
x == 0也为真
如果x = 1
!x 为假
x == 0也为假
D
while(!x)就是x==0执行,非0值不执行
!表示取反,true变false,false变true
那么x是个int类型的时候,就要涉及隐式转换的知识
int转bool时,0->false,非0->true
因此x当x不为0时为真,为0是为假
!x反过来,当x为0时为真,不为0时为假
那么逻辑等价于x==0