入門編程,必定要從C語言開始嗎?不少小夥伴由於選擇然後悔四年

入門編程,必定要從C語言開始嗎?不少小夥伴由於選擇然後悔四年,那麼咱們剛剛進入大學應該怎麼去選擇呢?java

不少小夥伴在入門編程時,C語言課程開始的,但最近有的小夥伴問我, 學編程必定要從C語言開始嗎? 直接學習JAVA能夠嗎?程序員

大雄建議:在選擇編程語言以前,搞清楚本身的編程目的,有沒特別想打磨一個產品出來?編程

好比有些程序員想本身打造一款Java 遊戲,因此他選擇了java。因此,必定程度上取決於你的編程目的。安全

C語言如今已經很成熟,它的各類語法規則、思想都已經確立起來了,並對如今的不少語言產生很大的影響。因此做爲底層語言也是不少人在入門編程時想要第一個學習的。微信

可是任何事物都有其優勢和缺點,C語言也不例外。下面大雄帶你們分別來看一下。框架

C語言的優勢編程語言

C語言的優勢有三個:學習

(1)代碼量小spa

(2)運行速度快操作系統

(3)功能強大

咱們先看第一個優勢, C語言的代碼量很小 ,這是什麼意思呢?也就是說若是要完成一樣一個功能,用C語言編寫出來的程序的容量是很小的,而用其餘語言編寫容量就會比較大。

好比 Microsoft Word 和 WPS,它們一樣都是辦公軟件,功能也差很少,但 WPS 的安裝文件只有 50MB 左右,而 Microsoft Word 的安裝文件超過 500MB,有的甚至接近 1GB。緣由就是 WPS 的內核是用C語言編寫的。

C語言的第二和第三個優勢是它的 運行速度比較快 和 功能強大 。咱們能夠經過一個例子來解釋。

世界上總共有三大操做系統:UNIX 操做系統是用純C語言編寫的;Windows 操做系統的內核也是用C語言編寫的;Linux 操做系統還是用純C語言編寫的。

這 三大操做系統的內核所有都是用C語言編寫的 。爲何用C編寫,由於C語言的速度最快。計算機中全部的軟件都是在操做系統上運行的,若是操做系統的速度很慢,那麼在它基礎上運行的軟件的速度就更慢了。並且計算機中的全部硬件都是由操做系統控制的。

舉個簡單的例子,新建一個 Word 文檔,這就意味着在硬盤上產生了這個文件。可是並無直接控制硬盤,咱們是經過操做系統提供的「右鍵單擊」等功能來新建文件的。

也就是說,操做系統給咱們提供了一個界面,或者說是給咱們提供了一種可操做的手段,經過這個手段咱們能夠刪除文件、新建文件、打開文件或者修改文件。

因此操做系統很重要,全部的硬件所有都是由操做系統控制的。而這麼重要的東西只能用C語言來寫,因此C語言很重要。爲何只能用C語言寫?第一,C語言速度夠快;第二,C語言能夠訪問硬件,因此它夠強大。

爲何不能用 Java 寫?首先,Java 太慢了;其次,Java 語言沒有指針。沒有指針就不能訪問硬件,因此它的功能是不夠的。指針是什麼稍後會講,它是C語言中很是重要的內容。

C語言的缺點

C語言的缺點能夠用下面三點來歸納:

(1)危險性高

(2)開發週期長

(3)可移植性不強

咱們先看第一點。假如寫一樣一個程序,在 Java 裏面會報錯,而在C語言裏面是不會報錯的。爲何?

由於 C語言設計的思想是 :想怎麼寫程序就怎麼寫,只要這種寫法錯得不是很離譜,就認爲這麼寫有特殊的含義,能夠經過。但 Java 不行:只要這麼寫有歧義,或者說這樣寫不太好,那麼它都會報錯。

好比C語言中能夠將一個浮點型數據賦給一個整型變量,編譯時只會警告,由於會丟失精度,可是在 Java 中這樣寫就會報錯,它在語法上就禁止這樣寫。

因此不一樣的語言對一樣一個問題有不一樣的處理方式。

你們想一想這樣致使的結果是什麼?

由於有歧義的程序也能夠經過,這樣就會有不少漏洞,黑客每每會抓住這些漏洞進行攻擊,因此說 C語言比較危險 

這也是爲何C語言比較難學的緣由,由於學完以後編寫一個 程序極可能就是錯 的,但又很難發現。因此前面說 C++ 從安全性上對C語言進行了升級。

第二個是它的 開發週期比較長 。由於C語言是面向過程的語言,面向過程語言的一個特色就是寫大項目的時候很容易「崩潰」。

當代碼上到 10 萬行的時候很容易崩潰,會出現各類各樣莫名其妙的錯誤。這時候就須要用另一種思想將整個程序的框架從新設計一下,即用面向對象的思想設計。這也是C語言如今沒有 Java 流行的緣由。

C語言的第三個缺點是 可移植性不強 。這個主要是針對 Java 的。Java 的可移植性太強了,因此就顯得C語言的可移植性不強。

什麼叫可移植性?就是說 Java 程序在哪一個機器上均可以運行,並且結果如出一轍。而C語言就不行,C程序在其餘機器上不必定能運行。並且就算能運行,結果可能也不同。

關於第一種編程語言,對於一名新手程序員來講,只要你不選特別難的,基本上沒什麼影響。

選擇大家想要學習的語言去努力學習吧!


大學想提高你的編程能力,成爲一個強大的程序員找到一份好工做嗎?不妨和一些志同道合的小夥伴一塊兒學習成長!

C語言C++編程學習交流圈子,【點擊進入微信公衆號:C語言編程學習基地

有一些源碼和資料分享,歡迎轉行也學習編程的夥伴,和你們一塊兒交流成長會比本身琢磨更快哦!

相關文章
相關標籤/搜索