C语言进阶记录--------关于if(a) if(!a)


今天做题时,遇到了这么一个题目,刚看到的时候有些蒙:

                    

但思考后发现:这次题目考察基本的if(表达式):

       “表达式”的值不等于0(”逻辑真“)时,执行接下来的语句。否则跳出当前所在语句组。

                        (同样适用于whlie(表达式))

题目中: if(!ok1)   ok1=5;     !5 <=> !逻辑真      即可认为 !ok1==0,所以不执行x=1;  跳转到下一条else if

             else if (ok2)   x=10;     ok2=0;      所以不执行x=10;  跳转到x=-1;  本题答案为 -1。

             但是!!!

分析这个题的结构可知:无论前面怎么推论,最后答案都会是 -1 !!!

              因为 x=-1;  这个语句根本需要任何条件就可以输出啊!

             所以前面就是蛊惑你的坑,但借助这个坑也学到了一些知识啦


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM