![](/img/trans.png)
[英]Variable inside if block is assigned to zero even if the if expression evaluates to false in C
[英]zero is greater than or equal to zero evaluates to false
i = 0;
if(0 <= i <= 0)
這返回false。
我一點都不明白。 在監視窗口中,當我分別測試它們時,我還嘗試將語句讀取為(0 <= i && i <= 0)
0 <= i
返回false,而i <= 0
返回true。 他們倆都應該是真的。 我不確定這是否精確,但是由於要對值進行硬編碼,因此我不認為這是精確的。請幫助我理解這個基本問題。
如果有幫助,我嘗試通過獲取相交點來評估點是否在直線上,然后檢查它是否在x和y起點和終點之間。 當我嘗試檢查x或y在其軸上時,這將成為一個問題,然后您會遇到檢查0是否在0和0之間或等於0與0之間的問題。
關系運算符的鏈接是不可能的(根據期望產生有效的結果),您需要編寫單獨的指令來驗證每個條件。
由於缺乏明確的括號和LTR關聯 ,
if(0 <= i <= 0)
被評估為
if( (0 <= i) <= 0)
歸結為
if ( 1 <= 0)
產生0(FALSE)。
也就是說,與
當我分別測試它們時,我還嘗試將語句讀取為
(0 <= i && i <= 0)
0 <= i
返回false,而i <= 0
返回true。 他們都應該是真的
是不正確的, 它們都是真的 。 你自己看
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.