C語言執行錯誤

2022-07-31 03:15:16 字數 1140 閱讀 5276

上週學校了c基礎,除了之前的c基礎部分要點的概述外,我在學習中碰到了不少問題,尤其是不能執行和思維邏輯跟不上時最大的苦惱,所以就先寫寫這篇c語言的常見錯誤。

c語言對於我這種初學者來說,執行報錯很常見,可報錯之後,又不一定看得懂,因為報錯方式是英文。所以,問題一旦出現就要乙個乙個瞅對錯,這樣做不僅效率不高,而且眼一花,說不定就得從頭開始。可是英文又不能臨時抱佛腳,畢竟這不是一朝一夕的事,所以在幾天做題的練習下,我發現了一些,我的經常出現的執行錯誤,這就小小的分享下。

1、首當其衝就是輸入scanf時,忘記"&"。例:

int c,d;

scanf("%d,%d",c,d);

雖然這樣它依然可以執行,但是它沒法輸出位址值。

2、忘加分號或加錯逗號而執行報錯。例:

printf("%d,%d,"c,d);

printf("%d,%d",c,d)

這種情況,一般程式都會報錯,一般也好檢視。

3、又是scanf,為什麼又說是它呢,因為剛學的時候,大家應該都知道有「\n」這個還行符號,大家也應該都會忘printf裡面加「\n」這個符號換行。所以,就自然而然的開始在scanf裡面加這個符號。這樣輸入後,程式不會執行,可是我們卻會一直找不到,因為我們不了解,原來「\n」也不是哪都能加的。

4、誤把「=」當做運算子。例:

if(x=3)

大概是受小時候的影響,我們經常在知道「=」是賦值的意思時卻依然用它,我常想,這是潛移默化還是狗改不了吃屎呢?

5、又是分號,還是那句話,我們總是畫蛇添足的,不該加的我們都勇往直前、義無反顧的加。例:

if(a>b);

看出來在哪加了嗎?說真的,開始學的時候,我總是情不自禁的給它加上。而且,還惡性迴圈的一直改東改西就是不改它。

6、switch後面不跟break,switch case在執行時,首先根據switch表示式,找到滿足條件的case分支,執行。在執行過程中,如果遇到break,則跳出switch語句,否則,將繼續一級一級往下執行,直到遇到break或結束。而不加break就會有多個執行結果,所以能怪不知是哪齣了錯嗎?誰叫我們隨心所欲地加或減呢。

7、括號不匹配,不管是迴圈巢狀還是判斷巢狀,因為有許多的括號要打,而有時呢,就忘了右邊的括號。這讓我想起我乙個乙個數括號的經歷……唉!

這是我常出錯的地方,有借鑑的可以借鑑,不可借鑑的可以再添……

C語言段錯誤

當我在linux下寫c語言的時候經常會遇到段錯誤.所以就來細究一下.段錯誤或段違規 segmentation violation 檢視expert c programming peter van der linden pg.156 解釋到段錯誤是由於記憶體管理單元 mmu 的異常所致,而該異常則通常...

C語言 常見錯誤

1.忘記定義變數。2.輸入輸出的資料的型別與所用格式說明符不一致。3.未注意 型資料的數值範圍。4.在輸入語句scanf中忘記使用變數的位址符。5.輸入資料的形式與要求不符。6.誤把 作為 等於 運算子。7.語句後面漏分號。8.在不該加分號的地方加了分號。9.對應該有花括號的復合語句,忘記加花括號。...

C語言 常見錯誤

1 char p 注意p中包含字串結束符 0 2 strlen函式沒有包含字串末尾的 0 3 如果函式的引數是乙個指標,不要指望用該指標去申請動態記憶體 4 createnode binnode tree,char p 訪問tree.data錯誤 原來問題出在c編譯器原理上 編譯器總是要為函式的每個...