C语言中if(!x)什么意思
非X的意思。
!在C语言中有两种表达,这里边表示“非”。
取决于X的值,如果X的值为0,!X就是1.
如果X的值不为0,!X就是0的意思。
扩展资料:
C语言中提供了三种逻辑运算符:
&&(与运算)
||(或运算)
!(非运算)
优先级:C语言中,运算符的运算优先级共分为15 级。1 级最高,15 级最低。 在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符 优先级相同时,则按运算符的结合性所规定的结合方向处理。
结合性:C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。例如算术运算符的结合性是自左至右,即先左后右。如有表达式x-y+z 则y 应先与“-”号结合,执行x-y 运算,然后再执行+z 的运算。
这种自左至右的结合 方向就称为“左结合性”。而自右至左的结合方向称为“右结合性”。最典型的右结合 性运算符是赋值运算符。如x=y=z,由于“=”的右结合性,应先执行y=z 再执行x=(y=z)运算。C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。
优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。
参考资料:
!是逻辑运算符,读作非,加入X只是非零值(1,2,3,4或者一千、一万,都可以),那么!x的逻辑值就是零。if(!x)的解释就是:如果!x为真(!x值是非零值)那么执行下面的语句,反之(!x逻辑值为零),那么不执行
例如:
//使用嵌套式 if显示一个数的约数
#include<stdio.h>
#include<stdbool.h>
int main()
{
unsigned long num; //要检查的数
unsigned long div; //可能的约数
bool isPrime; //素数的标志
printf("please enter an integer for analysis;");
printf("Enter q to quit.\n");
while(scanf("%lu",&num)==1)
{
for(div=2,isPrime=true;(div*div)<=num;div++)
{
if(num%div==0)
{
if((div*div!=num))
printf("%lu is divisible by %lu and %lu.\n",num,div,num/div);
else
printf("%lu is divisible by %lu.\n",num,div);
isPrime = false;//不是一个素数
}
}
if(isPrime)
printf("%lu is prime.\n",num);
printf("please enter another integer for analysis;") ;
printf("Enter q to quit.\n");
}
printf("Bye.\n");
return 0;
}
拓展资料
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
if(!x)的意思是如果x为假,则if语句为真,反之,x为真,if语句为假。
例子(伪代码):
if(!x){
//当x为假时,执行这里的语句
}else{
//当x为真时,执行这里的语句
}
扩展内容:
非运算符:
“!”(逻辑非)逻辑运算符。逻辑运算又称布尔运算 布尔用数学方法研究逻辑问题,成功地建立了逻辑演算。他用等式表示判断,把推理看作等式的变换。这种变换的有效性不依赖人们对符号的解释,只依赖于符号的组合规律 。这一逻辑理论人们常称它为布尔代数。逻辑非,就是指本来值的反值。
例如:
" !0" 这个逻辑表达式的值为1.(判断的这个数为0,成立,则其表达式的值为1)。
" !1" 这个逻辑表达式的值为0.(判断的这个数非0,不成立,则其表达式的值为0)。