在C++教材上看到一个知识点,不明白,请教大家!

来源:百度知道 编辑:UC知道 时间:2024/06/25 00:46:04
书上是这样写的:
if(x=!9) cout<<"x is false\n"; //即if(x=0) cout<<x; ——永不执行
我不明白是什么意思!
这个例子是在区别“!=”和“=!”时举的。

我觉得左边if的条件是说只要z是非9的数就条件成立,比如8,7都可以。

不是非9就成立~
你要明确这样的思路,非0数为真,0为假,9是一个非0数为真,!是取反号,9的反就是假,假就是等价于0。

都是最基础的啊

!9 等于 0
所以x=!9 就相当于 x=0

这个理解是:在C++中默认为非一个不为0的数 则就是0
所以!9 就是0

!=是不等于 与之相对就是== 是条件判断运算符

懂了吗?

在x=!9表达式中,先计算(!9),因为9是不为0的数,取非就得到一个"假"值,即"0".之后x=0,意思是将0赋予变量x,于是语句:if(x=!9)相当于:if(0),条件(x=!9)将固定返回了一个假值:0
///////就是条件总是不成立,命中注定不可能为真,
cout<<"x is false\n"/////于是这一句永远不会有执行的机会!(因为要(x=!9)返回真值,即非0,才执行)
-------个人理解,有错误请大家帮校正,我也是来学东西哈