錯誤分為兩種,具有實質區別。
第一種可以被編譯器識別出來,不符合詞法/語法/從技術上說時錯誤的。
第二種從技術上說時正確的,計算機的視角看它不具有錯誤。因此,c程式順利通過了編譯,沒有報告任何警告和錯誤資訊,計算機嚴格按照程式**執行,但結果與預期不符。
程式設計錯誤實際上反應的是程式與程式設計師對該程式的「心智模式」兩者的相異之處。從程式錯誤本質而言,我們很難給他們相應分類,對乙個程式錯誤可以從不同層面採用不同方式考察。
根據程式錯誤與考察錯誤方式間的相關性,劃分程式錯誤。
c陷阱與缺陷 陷阱
例1 if x y break 這就話的意思就是把y賦值x,判斷x是否為0,實則是在判斷y是否為0 例2 while c c t c n 這句話的意思就是 c t c n 賦值給c,而有 符本身就是不為0的數,所以這就是while 1 的意思。例3 int x 4,p new int p 2 cou...
C陷阱與缺陷
c語言對於符號 包含乙個或多個字元 的識別規則 每乙個符號應該包含盡可能多的字元。也就是說,編譯器將程式分解成符號的方法是,從左到右乙個字元乙個字元地讀入,如果該字元可能組成乙個符號,那麼再讀入下乙個字元,判斷已經讀入的兩個字元組成的字串是否可能是乙個符號的組成部分 如果可能,繼續讀入下乙個字元,重...
C陷阱與缺陷
1.int num 10 測試一下 num 0 是否 等於 0 num 因為num是首位址 num 0 0 num 2.其實c中只有一維陣列 我們所說的 int a 3 4 只是乙個包含了三個元素 每個元素都是包含了四個整形值的一維陣列 3.int num 10 10 int p num 0 名為n...