C语言中while(!x==0)什么意思

如题所述

给个例子,看了就懂了。这种问题自己写个小代码就可以看出来了。。。。。

#include<stdio.h>

int main()

{ int x=10;

  int n=0;

while(!x==0)         /*等价于while(x!=0),但他们的理解不一样。while(!x==0)中,先判断(!x)的真假性,如果为假,即==0,则(!x==0)为真,执行循环体。反之,结束循环。而在while(x !=0)中,如果x的值不为零,即!=0,则(x!=0)为真,执行循环体。反之,结束循环。*/

{

   n++;

   x--;

}

printf("%d\n",n);

}


谢谢!别客气。。。。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-03
!是“逻辑非”操作符,所以!x就是给x取反。在C里,非0为“逻辑真”,用1表示,0是“逻辑假”;所以!x==0实质就是x!=0的意思。所以,while(!x==0)等效于while(x!=0),即当x不等于0时继续循环,一直循环到x变为0时结束。
第2个回答  2013-06-01
!x==0
等价于
(!x)==0
进一步等价于
x!=0

也就是说在x不为0时执行循环体。
第3个回答  2013-06-01
x 为真 时循环。
非0 为 真。
x 为真 时 !x 就等于 0。
x 为假 时 !x 就等于 1。 不满足 (!x==0)。就不做循环体。追问

整数为真,0为假,负数是什么

追答

整数为真 --- 正数是真,负数是真,只有0是假。

第4个回答  2013-06-01
x取反的值逻辑等于0,就执行while循环追问

如果是!(-1)算是什么

追答

结果就是假啊
#include"stdio.h"

main()
{
while(!(-1))

printf("aa");
}
这样就不能执行输出语句

追问

除0以为的任何数都是真?

追答

!后面是0,整个结果就是真,不为0整个结果就是假

本回答被提问者采纳
相似回答