李莫凡
摘 要C++程序作為一種計算機語言,廣泛應用于工業(yè)軟件研發(fā)當中,不僅具有很高的開發(fā)價值,而且研究價值也很高。具有功能豐富等優(yōu)點,有利就會有弊,其程序同時具有概念復雜的缺點,對于初學者來說經常出現(xiàn)錯誤,令其茫然失措,會使學習的信心受到挫傷,因此加深對常見錯誤的認識與掌握有效的解決方法顯得尤為重要。
【關鍵詞】C++程序 常見錯誤 解決方法
C程序編寫中涉及到不計其數(shù)的C語言,可以說程序設計是在與C語言打交道。C語言具有強大的靈活性,也是編程中出現(xiàn)錯誤最為頻繁的錯誤類型之一,為程序設計帶來了不便,最終影響了程序的正常運行,所以盡量減少各種錯誤發(fā)生的頻率。本文以C++程序為研究對象,對常見錯誤與解決方法展開了論述。
1 常見錯誤解析
C語言是C程序編寫使用的語言,相當于數(shù)學符號公式一樣,傳遞著有關計算機編程的信息。C語言的基本特點主要體現(xiàn)在內容與語法規(guī)則上,具有豐富的內容與靈活的語法規(guī)則,這兩個基本特點為程序設計造成了不便,在設計中由于疏忽,忽略了某個設計環(huán)節(jié),很容易導致錯誤的發(fā)生。尤其是對初學者來說,第一次接觸C語言感覺陌生,感覺若干個英文、數(shù)字、字符組成的C語言給人一種雜亂無章,十分復雜的感覺,初學對知識掌握還不夠扎實,更容易在程序設計中有所遺漏,更容易出現(xiàn)錯誤。綜合起來,經常出現(xiàn)頻率較高的錯誤主要有三個類別。
1.1 語法錯誤
C程序當中的語言與人們日常溝通交流中使用的語言有著如出一轍的共同特征,有著特定的固定模式。C語言錯誤就是與程序當中特定的語法規(guī)定相違背,這種錯誤在程序設計中較為常見,也是出現(xiàn)頻率最高的程序錯誤之一。出現(xiàn)這種錯誤只要編程語言知識扎實,一般不會頻繁地出現(xiàn)錯誤,即使出現(xiàn)錯誤,編譯程序會給予提示,指出出現(xiàn)錯誤的部分,只要牢記語法規(guī)則,在設計中保持認真仔細的態(tài)度,錯誤是可以避免的。
1.2 邏輯錯誤
程序是由若干個連續(xù)不斷的語言串聯(lián)組成,與電路中的導線一樣共同履行各自的職責,其實程序本身并沒有違背語法規(guī)則,因為每種語法有著特定的規(guī)則,程序由大量的語言組成,符合正確的語言規(guī)則才能完成程序的設計,這其中需要經過多次反復的檢查修改,這是一個嚴謹?shù)倪^程,從原則上來說程序違背語法規(guī)則的結論是不成立的,違背語言規(guī)則的是程序在執(zhí)行中的結果與原意不相符合,這也從邏輯角度說明一些錯誤的產生并不是因為程序違背了語法規(guī)則,而是從邏輯上執(zhí)行結果與原意不符合才導致的一些錯誤的產生。具體來說,從參與設計的人員角度來講,出現(xiàn)了這種錯誤的原因是算法與編寫程序出現(xiàn)了錯誤,使程序在執(zhí)行中產生的結果與解題原意之間存在差異。如果想解決錯誤,就要熟悉語法規(guī)則,有著豐富的編程經驗,對語句邏輯關系仔細斟酌檢查,按照作者的原意,做出部分修改與調整。
1.3 運行錯誤
當程序不存在語法與邏輯錯誤,那就是出現(xiàn)了運行錯誤,嚴重情況時導致程序的停止運行。如下面的這個公式:
這是一個程序段,其本身按照并無語法錯誤,問題就出現(xiàn)在輸入數(shù)據(jù)上。當這里的a值為0時,錯誤就會出現(xiàn),程序與數(shù)據(jù)之間不相適應。為保證程序能夠順利進行,應限制對輸入數(shù)據(jù)的輸入。程序編寫是編程工作在編寫工作的最后一道工序,但這不能保證程序運行的可持續(xù)性,為保證程序編寫的有效性,需要后期耐心細致的調試工作。
2 程序調試
針對上述提出的幾種常見錯誤,需要通過后期的程序調試加以解決,調試是為了檢查出錯誤,根據(jù)檢查出的具體錯誤采取不同的排除方法。一般來講調試程序分為以下幾個步驟:
2.1 靜態(tài)檢查
一個程序編寫好之后,以人工檢查的方式對紙面上的程序進行檢查,這就是靜態(tài)檢查。在檢查中發(fā)現(xiàn)因疏忽引起的錯誤,便于程序設計人員對設計工作做出檢討總結,避免類似錯誤的發(fā)生。為保證人工檢查的有效性,使程序具有可讀性,編程設計方法采用結構化的編程方法;為更加深刻地增加對每段程序的理解,多添加注釋;為使復雜程序時方便閱讀與調試,盡可能地使用函數(shù)。
2.2 動態(tài)檢查
動態(tài)檢查用于上機運行階段,是對運行程序進行的檢查。編輯好上機程序后開始試運行,結合顯示的信息,根據(jù)檢查分析的結果,對存在的問題逐一修改,一直達到編譯成功為止。在動態(tài)檢查實行中應注意出錯行的真實性,錯誤不是發(fā)生在所提示的出錯行上,這就需要從上一行尋找;針對具有關聯(lián)性與類型多樣的錯誤,提示的信息不宜輕信,應通過詳細的分析,發(fā)現(xiàn)問題到底出現(xiàn)在哪里,而不是完全按照提示的信息開展檢查,避免完全被出錯信息所制約;當遇到出錯信息數(shù)量繁多的情況,改進應按照逐一從上至下的順序。根據(jù)上面提到的一些錯誤具有關聯(lián)性,表面上看上去出現(xiàn)錯誤的信息類型繁多,實際上只有一至兩個錯誤。針對上面提到的錯誤也不必過于擔心,只需針對包含某變量的語句,當錯誤信息發(fā)送出去之后,全部錯誤在變量定義補充之后得到解決。
3 結論
通過上面的論述可知,本文從常見錯誤解析與程序調試這兩個對C++程序中的常見錯誤和解決方法展開了論述。C程序中出現(xiàn)的錯誤各種各樣,但綜合起來無非就是語法、邏輯、運行這三大類錯誤,按照出現(xiàn)錯誤的不同特點,又細分為不同種類的錯誤。程序編程并不是簡單易學的一門課程,避免錯誤的產生,需要進行程序調試??偠灾槍υ赾程序設計中除了掌握扎實的基礎知識,還需在具體的編程實踐中堅持認真負責的態(tài)度,反復檢查輸入的語言規(guī)則是否正確等事項,最大限度地減少錯誤的產生。
參考文獻
[1]周建亮,權奇哲.C語言程序設計的技巧和常見錯誤分析[J].中外企業(yè)家,2014,06:204.
[2]霍卓群.初學者學習C語言中常見問題的探討[J].電腦知識與技術,2014,13:3012-3015+3020.
[3]程靜飛,鄭鳳婷.試析C語言常見錯誤[J].電腦編程技巧與維護,2015,16:8-9+11.
作者單位
北京師范大學附屬實驗中學 北京市海淀區(qū) 100000