本帖主要彙總我在學習c語言過程中自己出現的一些錯誤,踩的一些雷區,希望你看完之後能少犯一些錯誤 ヾ(๑╹◡╹)ノ"
識別符號規範:
識別符號必須由字母,下劃線或數字組成。
識別符號必須以字母或下劃線開頭。
關鍵字不可作為識別符號。
由於c語言中嚴格區分大小寫,故某一字元大寫的識別符號仍為合法識別符號,例如int或printf(使用時不建議如此命名識別符號)
整數除以整數結果還是整數,這個結果為不大於實際結果的最大整數,如果想讓結果變為小數則可以把其中乙個整數變成浮點數再進行運算。
c語言中不同變數在輸入輸出時對應不同格式說明符,例如int型別對應%d,flout型別對應%f,double型別對應%lf(輸出時也可為%f)等等,在使用時記得對應自己要輸出的資料型別使用。
printf語句與scanf語句格式問題
printf語句格式為printf(「格式控制」,輸出列表);所以下文中x前面沒有&,但是scanf語句格式,scanf(「格式控制」,位址列表);所以在下文中x前新增了&。
int x;
scanf("%d",&x);
printf("%d",x);
return 0;
printf(「%a.bd」,x);
在這樣的輸出語句中,a叫做寬度限定詞,作用是制定資料的輸出寬度**(符號位也計算寬度)**,若資料實際位數小於a,則左端補空格,若大於a,則按實際位數輸出。b的作用則是用來使浮點數輸出時保留b位小數(最後一位會四捨五入)。
printf()中要想列印\,',"
由於它們是用於定義字元常量,是printf()函式的一部分,直接使用會造成混亂,則應該在雙引號中如此輸入\\,\',\"
非靜態區域性變數使用之前要先進行賦值,例如在s=s+1這個語句中,如果s沒有進行提前賦值那麼出來的結果就是隨機數。
靜態區域性變數在有static標記時,會預設初始化為0。
全域性變數沒有初始化值時會自動賦值0。
乙個等號(=)是賦值運算子,作用是賦值;兩個等號()是關係運算子,作用是判斷相等,若兩邊相等則表示式結果為1,否則為0。在判斷相等時切記不可只用乙個等號。
在書寫諸如if-else,for,while等語句的內嵌語句時,只允許是一條語句,若有多條語句,則應該使用大括號將這些語句組成復合語句,如果不打大括號,程式則只能將第一條語句作為內嵌語句執行。
字元型變數輸入可呼叫scanf()和getchar(),輸出可呼叫printf()和putchar()。需要注意的是getchar()和putchar()只能處理單個字元,即呼叫一次函式只能輸入或輸出乙個字元。
在使用巢狀迴圈時,一定要明確變數對內外層迴圈初始化,對外層迴圈初始化應放在外層for之外,對內層迴圈初始化應放在外層for之內,內層for之外。
break只能用於switch語句和迴圈語句
在下面的例子中,n只能為int和char型別,a和b只能為常量表示式,case後面是:(冒號)而不是;(分號),如果case後面沒有break,那麼它將繼續執行下去直到遇見break或者全部執行完畢。
switch(n) case(a):x=1;break; case(b):x=2;break;
break語句是跳出整個迴圈,而continue則是跳過下一語句。
i++與++i的區別:在單獨使用時沒有區別,都表示i=i+1,
但是a=++i,表示的是i=i+1;a=i;
而a=i++,表示的是a=i;i=i+1;
(此處涉及到運算子的優先順序和結合性問題,後面會詳細說明)
c語言中全域性變數在子函式中的賦值,只能在該子函式中使用,無法在整個程式中使用,但是在主函式中的賦值可以。
C語言易錯點總結
一下分為幾個部分分別加以說明。一 關鍵字 1.什麼是定義?什麼是宣告?兩者有何區別?答 定義是建立乙個物件,並未該物件分配一塊記憶體和取乙個名字,這個名字就是變數名或者物件名 宣告是告訴編譯器這個變數或者物件的記憶體已經存在,這裡只是引用。兩者最重要的區別在於,定義建立了物件並為物件分配了記憶體,而...
C語言程式設計易錯點總結
二 變數類 三 陣列類 四 指標類 五 預處理類 六 輸入輸出類 高亮 c語言是一門面向過程的 抽象化的通用程式語言,廣泛應用於底層開發。它是目前最著名,最流行的語言,效率高 功能強 用法靈活。在學習程式語言的過程中,最怕最難的就是找bug,而找bug又是必不可少的能力,甚至可能是程式設計中必經的乙...
C 易錯點總結
1.下面這段 考察變數的作用域問題。cpp view plain copy include using namespace std void other intmain 答案如下 main 0 10 0 other 4 0 15 main 0 10 8 other 6 4 15 考察點 區域性作用域...