當前位置:
首頁 > 知識 > 如何讓C語言初學者少走彎路

如何讓C語言初學者少走彎路

眾所周知,C語言具有簡潔緊湊,靈活方便,運算符豐富,數據類型豐富,表達方式靈活實用等特點,所以C語言程序設計更主動、靈活。它語法限制不太嚴格,程序設計自由度大,如對整型量與字元型數據及邏輯型數據可以通用等。但是事物都有兩面性,正是因為這個靈活給程序的調試帶來了許多不便,尤其對初學C語言的人來說,經常會出一些連自己都不知道錯在哪裡的錯誤。看著有錯的程序,不知該如何下手,從哪裡改起。這裡羅列了一些C編程時常犯的錯誤,方便初學的小夥伴可以有個參考,做到心中有數,不至於毫無頭緒。

零基礎小白到大神之路,歡迎加裙 四八七八七五零零四,群里有免費C++課程,還有大量乾貨哦

1.書寫標識符時,忽略了大小寫字母的區別。

main()

{

int a=5;

printf("%d",A);

}

編譯程序把a和A認為是兩個不同的變數名,而顯示出錯信息。C認為大寫字母和小寫字母是兩個不同的字元。習慣上,符號常量名用大寫,變數名用小寫表示,以增加可讀性。

2.忽略了變數的類型,進行了不合法的運算。

main()

{

float a,b;

printf("%d",a%b);

}

%是求余運算,得到a/b的整餘數。整型變數a和b可以進行求余運算,而實型變數則不允許進行「求余」運算。

3.將字元常量與字元串常量混淆。

char c;

c="a";

在這裡就混淆了字元常量與字元串常量,字元常量是由一對單引號括起來的單個字元,字元串常量是一對雙引號括起來的字元序列。C規定以「」作字元串結束標誌,它是由系統自動加上的,所以字元串「a」實際上包含兩個字元:『a"和『",而把它賦給一個字元變數是不行的。

4.忽略了「=」與「==」的區別。

在許多高級語言中,用「=」符號作為關係運算符「等於」。如在BASIC程序中可以寫

if (a=3) then …

但C語言中,「=」是賦值運算符,「==」是關係運算符。如:

if (a==3) a=b;

前者是進行比較,a是否和3相等,後者表示如果a和3相等,把b值賦給a。由於習慣問題,初學者往往會犯這樣的錯誤。

5.忘記加分號。

分號是C語句中不可缺少的一部分,語句末尾必須有分號。

a=1

b=2

編譯時,編譯程序在「a=1」後面沒發現分號,就把下一行「b=2」也作為上一行語句的一部分,這就會出現語法錯誤。改錯時,有時在被指出有錯的一行中未發現錯誤,就需要看一下上一行是否漏掉了分號。

{ z=x+y;

t=z/100;

printf("%f",t);

}

對於複合語句來說,最後一個語句中最後的分號不能忽略不寫(這是和PASCAL不同的)。

6.多加分號。

對於一個複合語句,如:

{ z=x+y;

t=z/100;

printf("%f",t);

};

複合語句的花括弧後不應再加分號,否則將會畫蛇添足。

又如:

if (a%3==0);

I++;

本是如果3整除a,則I加1。但由於if (a%3==0)後多加了分號,則if語句到此結束,程序將執行I++語句,不論3是否整除a,I都將自動加1。

再如:

for (I=0;I

本意是先後輸入5個數,每輸入一個數後再將它輸出。由於for()後多加了一個分號,使循環體變為空語句,此時只能輸入一個數並輸出它。

7.輸入變數時忘記加地址運算符「&」。

int a,b;

scanf("%d%d",a,b);

這是不合法的。Scanf函數的作用是:按照a、b在內存的地址將a、b的值存進去。「&a」指a在內存中的地址。

8.輸入數據的方式與要求不符。

scanf("%d%d",&a,&b);

輸入時,不能用逗號作兩個數據間的分隔符,如下面輸入不合法:

3,4

學習C語言始終要記住「曙光在前頭」和「千金難買回頭看」,「千金難買回頭看」是學習知識的重要方法,就是說,學習後面的知識,不要忘了回頭弄清遺留下的問題和加深理解前面的知識,這是初學的小夥伴最不易做到的,然而卻又是最重要的。學習C語言就是要經過幾個反覆,才能前後貫穿,積累應該掌握的C知識。同時不要忘記上機實踐,希望熱愛編程的小夥伴可以早日成為大神~

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 IT技術java交流 的精彩文章:

氣質深藍,夏日美家清爽明朗 室內設計篇
Web前端面試題、面試技巧有哪些?
Web前端工程師工作前 VS 工作後
米蘭時尚和室內設計,碰撞出什麼花火?
C語言程序員必須收藏的資源大全

TAG:IT技術java交流 |

您可能感興趣

如果你想學好語言
零基礎學c語言如何開始
如何能讓寶寶能言善道 同時學三種語言沒問題
如何選擇日本語言學校?
學語言就得無所畏懼
網路語言你懂多少?
出國留學如何通過語言關?
美國留學新「捷徑」,無語言也無妨!
如何診斷孩子是語言障礙?
C語言學習必須擁有學習路線,不然你就只會寫貪吃蛇
語言:如何讓孩子贏在起跑線上
語言天才竟然是這樣學外語的!
英國大學申請即將截止,雅思竟然拖後腿…語言課來了解一下!
喵星人你語言怎麼學偏了
為什麼說C語言不是低級語言?
如果再學一門新語言,你會選擇 Go 嗎?
我們為什麼要學C語言?
如果你善於「語言遷移」,法語學習就不是那麼難的事
如何突破語言學習的瓶頸!
趙立新四國語言切換自如,娛樂圈的這些學霸讓你意想不到