我們經常在使用for迴圈的時候有死迴圈的情況,但是我們這次的這個陷阱很淺,但是很容易掉進去。下面我們就開看看我們的陷阱吧。
在使用integer的時候,經常會使用到他的最大值,我們迴圈到最大值的時候停止迴圈,但是因為這一點讓我們掉進陷阱的,這個陷阱就是當乙個變數i為integer.max_value;當我們們在給它進行加1操作的時候,我們會發現它的值立馬回變為integer.min_value;我們來看看下面的**就知道了。
public class test */
public static void main(string args)
}
這個例子就可以說明上面我說的那條結論。下面我們就來看看那個完整for迴圈的吧。
public class test
/* public static void main(string args) */
}
這段**不會列印出來任何的東西,因為它的for迴圈已經是乙個死迴圈了。所以後面的列印語句是根本都不會列印出來的,這個小細節大家一定要注意。如果我們把「
<=」 的寫成「<」就不會出現上面的情況了,所以注意細節問題,我們就會在**開發中避免好多的問題。
C陷阱和缺陷 第1章 詞法「陷阱」
有感自己的c語言在有些地方存在誤區,所以重新仔細把 c陷阱和缺陷 一書翻出來看看,並寫下這篇部落格,用於讀書總結以及日後方便自身複習。是賦值操作符,而 是作為比較操作符,初學者容易將 錯寫為 這種情況下編譯器不會報錯,這就有可能造成很嚴重的後果,還不容易發現。比如下面這個例子 while c c t...
C陷阱與缺陷1
一 詞法分析 將程式分解成符號的過程 p.s 程式中的單個字元孤立起來沒有任何意義,只要結合上下文才有意義。1.不同於 賦值運算子 關係運算子 注意 不要把賦值運算子用成了關係運算子 也不要把關係運算子用成了賦值運算子 當確實需要對變數賦值並檢查該變數的新值是否為0時,最好的處理方法是 顯式地進行比...
指標 1,怎麼加?
指標 1,是加乙個單元格還是加乙個位元組呢,先看乙個程式 include int main int p arr p p p 1 p 10 p p 20 printf d,d n arr 0 arr 1 return 0 這個程式通過編譯結果為 1 10,這個結果說明p 後,arr 1 的值被更換為1...