!(--x)在c语言中的意思是:对变量x先进行自减,再对变量x的值取逻辑非,如果x为0,表达式为真,非0表达式为假。
" !0" 这个逻辑表达式的值为1(判断的这个数为0,成立,则其表达式的值为1)," !1" 这个逻辑表达式的值为0(判断的这个数非0,不成立,则其表达式的值为0)。“--”是自减运算符,含义是对变量先减1后取值。
在计算机里面进行的是二进制运算,逻辑判断的结果只有二个值,称这二个值为“逻辑值”,用数的符号表示就是“1”和“0”。其中“1”表示该逻辑运算的结果是“成立”的,如果一个逻辑运算式的结果为“0”,那么这个逻辑运算式表达的内容“不成立“。
扩展资料:
C语言运算注意事项:
1、注意表达式的优先级。圆括号【()】属于第一级优先级,逻辑非运算符【!】属于第二级运算符,因此先进行圆括号【()】内的运算,再进行逻辑非运算符【!】运算。
2、相较于语言中的+=和-=运算符,自增运算符更加简洁,且可以控制效果作用于运算之前还是之后,具有很大的便利性。
参考资料来源:百度百科-逻辑非
参考资料来源:百度百科-自增自减运算符
while(x)意思是说x非零情况下继续运行,那while(!x)就是说x是0的情况下继续运行,--x是说在用x参与运算前做x=x-1的操作。把上面的组合一下就是while(!(--x)),懂了吗?
这个是c语言中唯一的三目运算符。
string1 ?a : b
意思是说:当string语句判断是真的时候,该语句使用结果a,否则是用结果b。
(!x++||y--)
这个逻辑大概就是
x等于0或者y不等于0最后表达式结果为1
++和--是后做的
还有如果x为0,y就不--了
这个是一个条件语句的简写
就相对于:
if aa
b
else
c
如果aa为真,则执行b,否则执行c