如何用最短的時間學會C語言,並掌握C語言的精髓所在?

一品威客01發表於2021-01-29

對於高深莫測的C語言來說,寥寥3千字並不能說清楚的什麼問題。但只要您看了此文後,我想對於您學習此語言一定有很大的幫助,同時也能了知曉如何用最短的時間學會C語言以及掌握C語言的精髓所在。

談及C語言,我想凡是學過它的朋友都有這樣一種感覺,那就是“讓我歡喜讓我憂。”歡喜的是,C語言功能非常強大、應用廣泛,一旦掌握了後,你就可以理直氣壯地對他人說“我是電腦高手!”,而且以後若是再自學其他語言就顯得輕而易舉了。憂慮的是,C語言猶如“少林武功”一般博大精深,太難學了。其實就筆者認為C語言並非是“difficult(困難)”的,只要你能理清思路,掌握它的精髓,那麼自學C語言是一件非常容易且又其樂無窮的事。今天本人就與大家一起談談如何學習C語言或者說學習C語言應從哪幾方面著手。

瞭解一些基本知識

一.C語言的背景

就個人感觸,無論學習哪門語言首先應該瞭解一下自己所學語言的背景,也可以說它的發展史。

C語言屬於高階程式語言的一種,它的前身是“ALGOL”。其創始人是布朗·W·卡尼漢和丹尼斯·M·利奇。C語言問世時是帶有很大的侷限性,因為它只能用於UNIX系統上。然而隨著科學技術的進步,計算機工業的發展,C語言逐漸脫離UNIX。1987年美國標準化協會制定了C語言的國際標準,簡稱“ANSI C”,從此以後它便成為一種廣泛使用的程式語言。C語言的優點很多,主要的有如下四點:

1.兼備高階語言與低階語言的優點,屬於一種中間語言。

2.它是一種結構化程式設計語言,非常適合結構化程式設計。

3.有較豐富的資料型別、運算子以及函式供以選用。

4.直接與記憶體打交道,使修改、編輯其他程式與文件變得輕鬆,簡單。

二.兩大語系二種不同的學習方法

筆者學習過很多程式語言,例如:C,C++(C語言的擴充套件),QBASIC,VB(BASIC的視覺化),JAVASCRIPT,JSCRIPT ,VBSCRIPT,JAVA,ASP,FOXPRO,PERL等等,就本人實踐所得,其實高階程式語言分為兩大語系。一路是以C為主的程式語言,例如:JAVASCRIPT,JAVA等,這類語言在函式的呼叫,程式語句的書寫,迴圈的控制都極為相似。另一路是以BASIC為首的程式語言,例如:FOXPRO,VBSCRIPT等,此類語言同樣具有相似的函式呼叫,程式語句書寫以及迴圈控制,但與C語系是不同的。因此若是您以前是從QBASIC起家的,那麼在學習C語言前最好是先洗洗腦,千萬不要把學習BASIC的方法以及思路用在C身上。

講到這裡,我想大家對C語言一定有了感性認識吧!下面讓我們再昇華一下,全方位親密接觸它。學習C語言必須從以下四點入手,也就是說,只要你能掌握這四點的內容,那麼基本上就大功告成了。

親密接觸C語言

一.輸入輸出

C語言的輸入輸出是非常嚴格的,或許在其他程式語言中我們可以不關心這個問題,但在C語言中,我們必須要徹底瞭解它。由於篇幅有限,因此筆者不能詳談,有興趣的朋友可以參考由著名程式語言教授譚浩強先生主編,由清華大學出版社出版的《C程式設計第二版》。不過這裡筆者還是有幾點要談一下。

1.二維浮點數陣列的輸入

二維浮點數陣列的輸入(即:通過鍵盤給二維浮點數陣列賦值)在很多專業書中都沒有詳細講過這個問題。在給二維浮點數陣列賦值時一定要先宣告一個變數,接著把數值賦予這個變數,最後把變數數值賦予二維浮點數陣列賦值。例項如下:

同樣道理,在結構性浮點陣列變數中也一定要按照這種格式輸入。例項如下:

2.注意輸出格式中“%”後的字元

C語言的輸出說複雜不復雜,因為常用的都很簡單。可說不復雜也未必,記得曾在一次等級考前輔導我們C語言的教授講道:“如果C語言要考得很難的話,根本不用考什麼指標,只要專考輸出格式,我想百分之九十九的學生都不及格。”當時我們無不認同。從這則事例中可以看出C語言的輸出格式之複雜程度。因此大家在學習它時千萬要學會辨別輸出格式中“%”後的字元,每個字元都有其意義,也都有其作用。

二.優先順序

說道優先順序,有很多朋友都不是很瞭解或說很模糊。為此筆者想先通過一個例子讓各位有個概念。什麼叫優先順序?比方說,我們在公交車終點站排座隊時總會遇到70歲以上的老人不需要排隊就能上車的情景,這就是優先順序的涵義。C程式在執行時也象排隊坐車一樣,首先照顧那些優先順序高的運算子,若是優先順序相同,那麼就象遇到兩位(或兩位以上)70歲以上的老人那樣,讓他們依次上車。但是C語言中的優先順序的運算並不是千篇一律的,只能說是在大多數情況下,有些運算子的優先順序有其自己的特點,因此這點大家要注意。例如條件表示式:條件?結果1:結果2,這種表示式很多朋友都知道,它的作用與IF…ELSE…條件判斷語句很雷同,它運算時的優先順序就不是按照C語言的規則來完成的。所以說對於優先順序各位程式設計愛好者一定靈活掌握,不要死記硬背。

三.指標

就個人認為,C語言中的指標是最有特色的,當然也是最難學的。指標說穿了,其實是變數的一種表現形式,只不過這種變數記載的不是數值而是地址。就象一個人可以用姓名來表示自己,也可以用身份證號碼來表示自己一樣。筆者涉足程式設計已經有三年多了,在這期間曾經收到過很多網友的電子郵件詢問學習指標的方法。就本人感觸,學習指標最好是先學些計算機硬體工作的原理,例如:直接定址,間接定址等,只有瞭解了這些內容以後,你再學指標就比較容易理會,畢竟C語言是一門介於機器語言與高階語言中間的語言,沒有一些硬體工作知識是很難領悟它的真諦的。然而事事並非絕對,如果你沒有這些知識也不要緊,只要清楚知道以下筆者總結的二點再加上多練習便可:

1.指標是地址變數:它的值有兩種:其一是地址,其二是內容。不同的表達方式可以取不同的值,這有點象一個家庭地址在不同的場合標識的人物也不同。例如:父母親在他們的單位所登記的家庭地址就代表他們自己,而你在學校中登記的同樣的家庭地址就代表你自己。

2.指標是可以運算的,它的運演算法則與變數是一致的。

另外,在編寫一個程式時,除非萬不得已,一般不要使用指標變數。因為指標是比較複雜的,用不好就“當機”。所以筆者建議各位對於指標只要能看懂就行,當然如果你是準備參加考試的就另當別論了。

四.函式

雖說很多程式語言都有函式這一內容,但筆者覺得C語言的函式是最有魅力的。如果你能完全掌握C語言的函式,那麼學習C++就不成問題了(C++是一門建立在C語言上,但又不同於C語言的高階程式語言,它增添了很多函式。)。學習函式的方法是比較簡單的,只有兩個字“牢記”,即:牢記函式的功能,牢記函式的用途以及如何輸入輸出。有些朋友認為,程式語言中的函式沒有多大用處,其實這並不正確,函式從本質上講是一段通用程式,用它可以幫助我們節約很多程式設計的時間,一個聰明的程式設計者在編寫程式前往往總是先找自己所編寫的程式中有多少是可以用函式來代替的。筆者曾經作過一個比較字串的實驗,用C語言中的strcmp()函式只要一句話,而自己編寫的話30句話都擺不平,可想而知函式是多麼實用呀!

寫到這裡筆者該告一段落了,下面送一個本人自己用C 語言編寫的登錄檔比較程式給諸位。此段程式的註釋請看“//”後的文字,程式執行時(在DOS模式下)輸入的方式如下:compare xx1.reg xxx2.reg xxx3.txt,注意欄位與欄位之間是有空格的。(compare是程式名)

程式程式碼:

對於高深莫測的C語言來說,寥寥3千字並不能說清楚的什麼問題。但只要看了此文後,我想對於您學習此語言一定有很大的幫助,同時也能了知曉如何用最短的時間學會C語言以及掌握C語言的精髓所在。另外,此文中所涉及的知識點都是筆者通過實踐得出的,因此若是其他專業書籍沒有講到過的問題可以參考本文。最後祝大家學習C語言順利!

相關文章