天天看點

C++程式設計常見錯誤整理

       最近,我在閱讀《C++ Primer》,經常看到裡面提到一些錯誤類型,像“編譯錯誤”、“運作錯誤”等。于是,我對C++中的錯誤類型産生了興趣,查閱了一些資料,特整理如下。

       (一) 程式錯誤分類

        在C++中,程式錯誤分為三類:文法錯誤(syntax error)、邏輯錯誤和運作錯誤。

        文法錯誤指違背了C++語言的規定,主要是語句的結構或拼寫中存在的錯誤。

        邏輯錯誤是由于程式設計人員設計的算法有錯或編寫的程式有錯,通知給系統的指令與解題的原意不相同,即出現了邏輯上的混亂。

        運作錯誤是由系統運作環境造成的,即在運作時出現的錯誤。

       (二) 一些常見的錯誤現象

       1. 與變量有關的錯誤

       (1)忘記定義變量;

       (2)變量名命名不當;

       (3)資料類型不一緻;

       (4)字元常量與字元串常量使用不當;

       (5)輸入輸出的資料的類型與所用的格式說明符不一緻;

       (6)未注意int型資料的數值範圍;

       (7)輸入資料的形式與要求不符;

       (8)在使用辨別符時,忘記了大寫字母與小寫字母的差別;

       (9)在定義數組時,将定義的“元素個數”誤以為是“可使用的最大下标值”;

      (10)對二維或多元數組的定義和引用的方法不對;

      (11)誤以為數組名代表數組中全部元素;

      2. 與操作符有關的錯誤

     (1)比較運算符與指派運算符使用上的錯誤;

     (2)因使用自增與自減運算符不當導緻的錯誤(使用自加(++)和自減(--)運算符時出現的錯誤);

     (3)誤把“=”作為“等于”運算符;

     (4)在輸入語句scanf中忘記使用變量的位址符。

     3. 與标點符号有關的錯誤

     (1)語句後面漏分号;

     (2)在不該加分号的地方加了分号;

     (3)對應該有花括号的複合語句,忘記加花括号;

     (4)括号不配對;

     (5)引用數組元素時誤用了圓括号。

     4. 與指針有關的錯誤

     (1)混淆字元數組與字元指針的差別;

     (2)在引用指針變量之前,沒有對它賦予确定的值;

     (3)不同類型的指針混用;

     (4)混淆數組名與指針變量的差別。

     5. 與語句有關的錯誤

     (1)switch語句的各分支中漏寫break語句;

     (2)混淆字元和字元串的表示形式;

     (3)在需要加頭檔案時沒有用#include指令去包含頭檔案。

     6. 與函數有關的錯誤

    (1)所調用的函數在調用語句之後才定義,而又在調用前未聲明;

    (2)對函數聲明與函數定義不比對;

    (3)誤以為形參值的改變會影響實參的值;

    (4)函數的實參和形參類型不一緻;

    (5)沒有注意函數參數的求值順序。

     7. 其它錯誤

    (1)混淆結構體類型與結構體變量的差別,對一個結構體類型指派;

    (2)使用檔案時忘記打開,或打開方式與使用情況不比對。

       總的說來,在編寫程式的過程中,我們肯定會遇到錯誤的,因為“試圖一下子就能寫出一個完全成功的程式幾乎是不可能的”。當我們有了豐富的程式設計經驗之後,面對各種錯誤便能夠輕松解決了!

參考文獻

[1]    C++ Primer(中文第三版),中國電力出版社。

[2]    C程式設計(第三版),譚浩強(著),清華大學出版社。

[3]    C++程式設計常見錯誤分類與解析[J],孫愛民,漯河職業技術學院學報(綜合版),2006年4月。

繼續閱讀