c語言常見錯誤分析(基礎細節面試點之一)
c語言常見錯誤分析:
錯誤分類
語法錯
邏輯錯
執行錯
0.忘記定義變數:
main()
他是pascal的語法
8.不該加分號的地方加了分號
if(a>b);
printf(「a is larger than b 」);
for(i=0;i<10;i );
9.對應該有花括弧的復合語句,忘記加花括弧
sum=0;
i=1;
while(i<=100)
sum=sum 1;
i ;
10.括弧不配對
while((c=getchar()!=『#』)
putchar(c);
11.在用標識時,忘記了大寫字母和小寫字母的區別
12.引用陣列元素時誤用發圓括弧
13.在定義陣列時,將定義的」元素個數」誤認為是」可使用的最大下標值
;
int i;
for(i=1;i<=10;i )
printf(「%d」,a);
}
14.對二維或多維陣列的定義和引用的方法不對
15.誤以為陣列名代表陣列中全部元素
;
printf(「%d%d%d%d」,a);
}
16.混淆字元陣列和字元指標的區別
main()
17.在引用指標變數之前沒有對他賦予確定的值
18.switch語句的各分支中漏寫 break語句
混淆字元和字串的表示形式
…
char ***;
***=「m」;
…
19.使用自加( )和自減(--)運算子時出的錯誤
;
p=a;
printf(「%d」,*p );
}
注意於*( p)的區別;
20.所呼叫的函式在呼叫語句之後才定義,而又在呼叫前未加說明
main()
float max(float x,float y)
21.誤認為形參值的改變會影響實參的值
swap(int x,int y)
main()
22.函式的實參和形參型別不一致
fun(float x,float y)
main()
23.不同類的型指標混用
24.沒有注意函式引數的求值順序
int i=3;
prinft(「%d,%d,%d 」,i, i, i);
結果為5,5,4
因為vc 是採取自右至左的順序求函式的值
c標準沒有具體規定函式引數求值的順序
25.混淆陣列名和指標變數的區別
;
worker.num=187045;
strcpy(worker.name,」zhangfun」);
worker.***=『m』;
worker.age=18;
27.使用文件時忘記開啟,用唯讀方式開啟,卻企圖向該文件輸出資料
if(fp=fopen(「test」,」r」))==null)
ch=fgetc(fp);
while(ch!=『#』)
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編譯器原理上 編譯器總是要為函式的每個...
C語言常見錯誤
1.索引陣列時的防止越界的錯誤寫法 int arr max 在某處索引該陣列時,為了防止下標越界,可能會這樣寫 count get index if arr count 0 count max 在count max時,第乙個判斷條件其實已經越界了 do something 2.在兩個執行緒間傳遞指標...