[問題] 運算式

看板C_and_CPP作者 (藍天)時間15年前 (2010/07/27 11:45), 編輯推噓4(406)
留言10則, 6人參與, 最新討論串1/1
運算式如下: (1==1?-1:1u)<0 輸出的結果為false, 請問這是什麼問題?當然,-1,1u型態不同,那型態不同會怎樣?感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.216.50.83

07/27 12:26, , 1F
型態不同..... 會自動轉型吧?
07/27 12:26, 1F

07/27 12:28, , 2F
-1被轉成unsigned?
07/27 12:28, 2F

07/27 12:45, , 3F
咦?沒注意到....
07/27 12:45, 3F

07/27 12:48, , 4F
第八戒有提到類似的情況
07/27 12:48, 4F

07/27 13:08, , 5F
若無<0的話,其值為-1,若有<0,值就會轉成unsigned?
07/27 13:08, 5F

07/27 13:16, , 6F
轉unsigned的原因是因為1u 不是因為<0吧
07/27 13:16, 6F

07/27 13:26, , 7F
了解,因為我把前面的條件運算式用整數讀出了.....
07/27 13:26, 7F

07/27 14:02, , 8F
試了一下, 混搭整數浮點數的時候也會被當成浮點來算:)
07/27 14:02, 8F

07/27 14:03, , 9F
float f = 7 / ( (1==1)?3:3.0 );
07/27 14:03, 9F

07/27 14:03, , 10F
用DevC++試, f是2.3333而不是2.0000 :)
07/27 14:03, 10F
文章代碼(AID): #1CJbPOgQ (C_and_CPP)