天天看點

大學入門基礎為什麼從C語言學起?今天帶你“深入”了解C語言!

          在實際教學過程中,有不少同學覺得C語言學習比較困難,就我的了解,主要有兩點原因。第一,C語言的文法知識太多、太瑣碎;第二,反複地做算法類的程式設計練習,不感興趣,不願寫程式,進而覺得入門困難。

          想學習C語言,首先就要了解什麼是C語言!

          C語言是一門通用計算機程式設計語言,應用廣泛。C語言的設計目标是提供一種能以簡易的方式編譯、處理低級存儲器、産生少量的機器碼以及不需要任何運作環境支援便能運作的程式設計語言。

            盡管C語言提供了許多低級處理的功能,但仍然保持着良好跨平台的特性,以一個标準規格寫出的C語言程式可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。

             二十世紀八十年代,為了避免各開發廠商用的C語言文法産生差異,由美國國家标準局為C語言訂定了一套完整的國際标準文法,稱為ANSI C,作為C語言最初的标準。

            C語言的特點可概括如下:

           (1)簡潔、緊湊、靈活。C語言的核心内容很少,隻有32個關鍵字,9種控制語句;程式書寫格式自由,壓縮了一切不必要的成分。

           (2)表達方式簡練、實用。C語言有一套強有力的運算符,達44種,可以構造出多種形式的表達式,用一個表達式就可以實作其他語言可能需要多條語句才能實作的功能。

           (3)資料類型豐富。資料類型越多,資料的表達能力就越強。C語言具有多種資料類型,如字元型、整型、實型、數組、指針、結構體和共用體等,可以實作諸如連結清單、棧、隊列、樹等各種複雜的資料結構。其中的指針類型使得參數的傳遞簡單并且迅速,同時節省記憶體空間。

            (4)具有低級語言的特點。C語言具有與彙編語言相近的功能和描述方法,如位址運算和二進制數位運算等,還可以對硬體端口等資源進行直接操作,充分使用計算機的資源。C語言既具有進階語言便于學習和掌握的特點,又具有機器語言或彙編語言對硬體的操作能力。是以,C語言既可以作為系統描述語言,又可以作為通用的程式設計語言。

            (5)C語言是一種結構化語言,适合于大型程式的子產品化設計。C語言提供了編寫結構化程式的基本控制語句,如if-else語句、switch語句、while語句和do-while語句等。C語言是函數的集合,函數是構成C語言程式的基本機關,每個函數具有獨立的功能,函數之間通過參數傳遞資料。程式員可以編寫自己的函數。同時,不同作業系統的編譯器都為程式員提供了大量的标準庫函數,如輸入/輸出函數、數學函數和字元串處理函數等。靈活地使用标準庫函數可以簡化程式設計,提高編寫程式效率。

            (6)各種版本的編譯器都提供了預處理指令和預處理程式。預處理擴充了C語言的功能,提高了程式的可移植性,為大型程式的調試提供了友善。

             (7)可移植性好。程式從一個環境不經改動或稍加改動就可以移植到另一個完全不同的環境中運作。這是因為标準庫函數和預處理程式将可能出現的與機器有關的因素與源程式分割開來,使得針對不同的計算機硬體環境,可以重新定義有關的内容。

             (8)生成的目标代碼品質高。由C源程式編譯和連結得到的目标代碼的運作效率比用彙編語言編寫的也不過隻低10%~20%,可充分發揮機器的效率。

              (9)C語言文法限制不嚴,程式設計自由度大。C語言程式在運作時不做諸如數組下标越界和變量類型相容性等檢查,而是由程式設計者自己保證程式的正确性。C語言幾乎允許所有的資料類型的轉換,字元型和整型可以自由混合使用,所有類型均可作邏輯型,可自己定義新的類型,還可以把某類型強制轉換為指定的類型。實際上,這使程式設計者有了更大的自主性,能編寫出靈活、優質的程式,同時也給初學者增加了一定的難度。是以,隻有在熟練掌握C語言程式設計之後,才能體會到其靈活性。

             C語言也存在以下缺點:

            (1)程式的錯誤更隐蔽。C語言的靈活性使得用它編寫程式時更容易出錯,而且C的編譯器不檢查這樣的錯誤。與彙編語言類似,需要程式運作時才能發現這些邏輯錯誤。C語言還會有一些隐患,如将比較的 “==” 寫成指派 “=” ,雖然文法上沒錯,但這樣的邏輯錯誤往往不易發現,想要找出錯誤往往十分費時。

            (2)C語言程式有時會難以了解。C語言文法成分相對簡單,是一種小型語言。但是,其資料類型多,運算符豐富且結合性多樣,使得對其了解有一定的難度。

             (3)C語言程式有時會難以修改。考慮到程式規模的大型化或者巨型化,現在程式設計語言通常會提供 “類” 和 “包” 之類的語言特性,這樣的特性可以将程式分解成更加易于管理的子產品。然而C語言缺少這樣的特性,維護大型程式顯得比較困難。

              當我們簡單的了解了C語言的一些優缺點以後就要開始着手于基礎的學習了,我會幫助大家在我的經驗上期總結一些學習的方法和注意的知識點,有什麼不了解的歡迎私信哦,我也準備了一些資料幫助大家,歡迎大家滴滴,一起加油進步。

大學入門基礎為什麼從C語言學起?今天帶你“深入”了解C語言!