!(--x)在c语言中是什么意思?

具体例子:程序段
int x=3;
do
{printf("%3d",x-=2);
}
while(!(--x));
求程序段结果,求解什么意思?要详解,答案是1和-2

!(--x)在c语言中的意思是:对变量x先进行自减,再对变量x的值取逻辑非,如果x为0,表达式为真,非0表达式为假。

" !0" 这个逻辑表达式的值为1(判断的这个数为0,成立,则其表达式的值为1)," !1" 这个逻辑表达式的值为0(判断的这个数非0,不成立,则其表达式的值为0)。“--”是自减运算符,含义是对变量先减1后取值。

在计算机里面进行的是二进制运算,逻辑判断的结果只有二个值,称这二个值为“逻辑值”,用数的符号表示就是“1”和“0”。其中“1”表示该逻辑运算的结果是“成立”的,如果一个逻辑运算式的结果为“0”,那么这个逻辑运算式表达的内容“不成立“。

扩展资料:

C语言运算注意事项:

1、注意表达式的优先级。圆括号【()】属于第一级优先级,逻辑非运算符【!】属于第二级运算符,因此先进行圆括号【()】内的运算,再进行逻辑非运算符【!】运算。

2、相较于语言中的+=和-=运算符,自增运算符更加简洁,且可以控制效果作用于运算之前还是之后,具有很大的便利性。

参考资料来源:百度百科-逻辑非

参考资料来源:百度百科-自增自减运算符

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-25
while(x)意思是说x非零情况下继续运行,那while(!x)就是说x是0的情况下继续运行,--x是说在用x参与运算前做x=x-1的操作。把上面的组合一下就是while(!(--x)),懂了吗?追问

谢谢谢谢

追答

想谢我就麻烦采纳为满意答案!^-^

本回答被提问者采纳
第2个回答  2012-04-20
这个是c语言中唯一的三目运算符。

string1 ?a : b
意思是说:当string语句判断是真的时候,该语句使用结果a,否则是用结果b。
第3个回答  2011-06-28
(!x++||y--)
这个逻辑大概就是
x等于0或者y不等于0最后表达式结果为1

++和--是后做的
还有如果x为0,y就不--了
第4个回答  2012-04-20
这个是一个条件语句的简写
就相对于:
if aa
b
else
c
如果aa为真,则执行b,否则执行c
相似回答