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