c++中感叹号的含义

问题描述:

c++中感叹号的含义
void main()
{ int x=-1;
do
{x=x*x;}
while(!x);}
下列说法正确的是( ).
A.是死循环 B.循环执行两次
C.循环执行一次 D.有语法错误
这个没啥疑问,当x=1时,x是0
那么,如果x=2或者x3的话,while(!x)这个条件取什么值呢?是真值还是假值?
有人告诉我感叹号是“非”的意思,非1是0,那么非2或者非3呢?

!就是表示非的意思,经过它处理后的结果为布尔型,要么为0,要么为1,!x,只要x不为0,1,2,3,都可以,那么!x的结果就是0,只有当x为0时,结果为1