馬曉娟
(集寧師范學(xué)院計(jì)算機(jī)系,內(nèi)蒙古烏蘭察布012000)
C語(yǔ)言初學(xué)者編程的常見錯(cuò)誤及分析
馬曉娟
(集寧師范學(xué)院計(jì)算機(jī)系,內(nèi)蒙古烏蘭察布012000)
C語(yǔ)言最大的特點(diǎn)是功能強(qiáng)大、使用方便靈活.C語(yǔ)言的編譯程序?qū)φZ(yǔ)法檢查并不象其它高級(jí)語(yǔ)言那么嚴(yán)格,某些錯(cuò)誤編譯程序不予以檢查,這不但給編程人員留下靈活的空間,而且給調(diào)試程序帶來(lái)許多不便,尤其對(duì)于初學(xué)者來(lái)說(shuō),經(jīng)常會(huì)出現(xiàn)一些莫名其妙的錯(cuò)誤.要想快速排錯(cuò)除了學(xué)習(xí)時(shí)嚴(yán)格掌握C的語(yǔ)法規(guī)則,還要經(jīng)常歸納總結(jié),這樣就可以避免一些典型錯(cuò)誤的發(fā)生.
語(yǔ)法錯(cuò)誤;編譯;邏輯錯(cuò)誤
1 引言
作為一個(gè)長(zhǎng)期從事C語(yǔ)言教學(xué)的教師來(lái)說(shuō),經(jīng)過(guò)多次的教學(xué)過(guò)程,發(fā)現(xiàn)初次接觸C語(yǔ)言的相當(dāng)一部分同學(xué)入門比較慢,往往跟不上老師的節(jié)奏,導(dǎo)致知識(shí)講授越多問(wèn)題堆積越多,編程錯(cuò)誤越多.編程語(yǔ)言的語(yǔ)法規(guī)則是很嚴(yán)格的,即使出現(xiàn)一絲錯(cuò)誤也使得整個(gè)程序不能運(yùn)行或運(yùn)行出錯(cuò)誤的結(jié)果,這就要求教師在講課時(shí)突出強(qiáng)調(diào)語(yǔ)法格式與種種注意事項(xiàng).
編程錯(cuò)誤分兩種,語(yǔ)法錯(cuò)誤與邏輯錯(cuò)誤.語(yǔ)法錯(cuò)誤是違背語(yǔ)句語(yǔ)法規(guī)則表現(xiàn)的錯(cuò)誤,這種錯(cuò)誤編譯程序在編譯時(shí)能檢測(cè)出來(lái),并給出用戶錯(cuò)誤提示信息,用戶可參考這些信息修改錯(cuò)誤直到?jīng)]有編譯錯(cuò)誤.但是沒(méi)有語(yǔ)法錯(cuò)誤并不能保證程序一定是正確的,有可能會(huì)運(yùn)行出錯(cuò)誤的結(jié)果,這就說(shuō)明程序有邏輯錯(cuò)誤,指的是程序的算法有問(wèn)題,算法在邏輯上與題目要求不符.邏輯錯(cuò)誤要比語(yǔ)法錯(cuò)誤難排除,往往要求用戶有很扎實(shí)的基礎(chǔ).
經(jīng)過(guò)多次教學(xué)經(jīng)驗(yàn)的積累,不難總結(jié)出一些初學(xué)者編程中會(huì)出現(xiàn)的普遍性錯(cuò)誤,其中包括了各種語(yǔ)法錯(cuò)誤與邏輯錯(cuò)誤,以下將對(duì)其分類逐一的分析.
2 初學(xué)者編程時(shí)的常見錯(cuò)誤及分析
2.1 關(guān)于變量定義、賦值、引用的錯(cuò)誤
2.1.1 書寫標(biāo)識(shí)符時(shí),忽略了大小寫字母的區(qū)別.如:

編譯程序區(qū)分大小寫字母,把a(bǔ)和A認(rèn)為是兩個(gè)不同的變量名,從而顯示變量A未定義這一錯(cuò)誤提示信息.
2.1.2 將字符常量與字符串常量混淆.如:

字符常量是由一對(duì)單引號(hào)括起來(lái)的單個(gè)字符,字符串常量是一對(duì)雙引號(hào)括起來(lái)的字符序列.C規(guī)定以’