為什么要學(xué)習(xí)C語言 C語言優(yōu)勢分析
不止一個學(xué)生問到我:“老師,為什么我們的應(yīng)用程序設(shè)計要學(xué)C語言而不是別的?C語言不是已經(jīng)過時了嗎?如果現(xiàn)在要寫一個Windows程序,用VB或Dephi開發(fā)多快呀,用C行嗎?退一萬步,為什么選擇C而不是C++呢?”
這個問題三言兩語還真說不全。簡單來說,C語言是計算機程序語言的基礎(chǔ),是實用的程序設(shè)計工具,學(xué)好C語言對你今后學(xué)習(xí)JAVA、C++、VB等可以打下良好的基礎(chǔ),因為這些語言大部分都是由C語言擴充或衍生而來的。C可以用于開發(fā)比較底層的東西,比如驅(qū)動、通信協(xié)議之類,在Unix和Linux環(huán)境中也是不可或缺的,另外在嵌入式領(lǐng)域也大有作為。
站在本專業(yè)的角度看,雖然信息管理對程序設(shè)計的要求不如計算機專業(yè)那么高,但如果你不懂得C,基本上就很難理解程序設(shè)計的思想,因為想真正學(xué)會程序設(shè)計就不可能不跟數(shù)據(jù)結(jié)構(gòu)打交道,而初學(xué)者如果直接從VB或Java入手,基本上很難理解如何構(gòu)造數(shù)組、鏈表、樹、圖等結(jié)構(gòu),這些東西很容易和封裝、繼承等概念打架。而用C語言則可以清楚明白地把它們表示出來。也只有真正理解了數(shù)據(jù)結(jié)構(gòu),才有機會體驗程序設(shè)計的思想和算法的精髓。
所以學(xué)C語言的必要性就很清楚了:C語言是基礎(chǔ)(但不是簡單的)。國外的人們拿C語言來處理現(xiàn)實問題,而我們現(xiàn)在還在用它來打磨自己的浮躁,所以我們距離國外的水平還太遠,但又不是不可企及的。
當然,如果想在Windows上開發(fā)圖形接口,用MFC或C#、Java都比C好的多。尺有所短,寸有所長。每種語言有自己適用的領(lǐng)域,C并不是萬能的,但想成為程序設(shè)計高手,不懂C是萬萬不能的。
至于為什么選擇C而不是C++,那是因為我們的培養(yǎng)計劃無法提供足夠的學(xué)時。想學(xué)好學(xué)精C++,沒有100學(xué)時是不夠的,而我們現(xiàn)在選擇的C語言都只有44課時的理論教學(xué)時間,面對如此豐富多彩的C世界,我已經(jīng)頗感力有不逮,許多基本內(nèi)容都得靠學(xué)生自學(xué)了,哪還能奢望C++???
每個程序員在他們的編程生涯中都應(yīng)該學(xué)習(xí)C語言,因為它有太多難以忽視的好處了。除了它會給你提供更多的工作機會之外,C語言還會教給你更多的關(guān)于計算機的知識。它能給我們提供的裨益,,簡單列舉如下:
1.相比較其他的編程語言(像C++,JAVA),C語言是個低級語言。從總體上來說,低級的編程語言可以讓你更好的了解計算機。
2.設(shè)備驅(qū)動程序和操作系統(tǒng)只能用C語言來編寫。現(xiàn)在,你可能還從來沒有編寫過一個設(shè)備驅(qū)動程序或者一個操作系統(tǒng),但是如果你需要去修改他們的時候,怎么辦?
3.如果你想要得到一份編寫微控制器程序的工作的時候,該怎么辦?他們都是用C語言編寫的。就因為不想學(xué)習(xí)一門新的語言,你就準備限制你能得到工作的機會嗎?
4.C的程序比其他用別的語言寫的程序,實現(xiàn)相同的功能,它用的代碼行數(shù)更少,而它帶來的運行效率卻更快。有時候,你的程序所需要的速度,只有C語言能做到。
5.如果你學(xué)習(xí)過C語言,你就能學(xué)習(xí)現(xiàn)在任何的高級編程語言。因為所有的高級語言都是以C語言為基礎(chǔ)的(像JAVA,C++,C#等等)。
6.因為C語言已經(jīng)存在很多年了,它有廣泛的使用團體并且有大量的現(xiàn)成代碼可以利用。這就使你能在過去程序的基礎(chǔ)上,快速和高效的編寫新的算法和函數(shù)。
7.C語言是一個開源組織的語言。一個開源組織的產(chǎn)物--LINUX,就是用C語言寫的。如果你會C語言,你就能參加這個組織并且還能向眾多的開源組織投稿,比如參加Source Forge并且給他們投稿。
8.C語言是唯一一個向你闡述指針的本質(zhì)的語言。而C#和Java干脆跳過了指針這個題目??墒侵羔槾_實使C語言變得更加強大。
9.找編程開發(fā)方面的工作時,C語言仍然是最普遍需要的語言。所以它值得你花時間去學(xué)會它。
10.任何里面有微處理器的設(shè)備都支持C語言。從微波爐到手機,都是由C語言技術(shù)來推動的。
11.好了,說了這么多,大家應(yīng)該感到我們應(yīng)該學(xué)習(xí)C語言的必要性和迫切性了吧!那就趕快學(xué)吧!讓它成為我們?nèi)〉酶蟪晒Φ碾A梯!
相關(guān)文章
C語言植物大戰(zhàn)數(shù)據(jù)結(jié)構(gòu)二叉樹遞歸
這篇文章主要為大家介紹了C語言植物大戰(zhàn)數(shù)據(jù)結(jié)構(gòu)二叉樹遞歸,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05C語言學(xué)習(xí)進階篇之萬字詳解指針與qsort函數(shù)
之前的指針詳解中,提到過qsort函數(shù),這個函數(shù)是用來排序的,下面這篇文章主要給大家介紹了關(guān)于C語言指針與qsort函數(shù)的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-08-08簡單比較C語言中的execl()函數(shù)與execlp()函數(shù)
這篇文章主要介紹了C語言中的execl()函數(shù)與execlp()函數(shù)的簡單比較,是C語言入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-08-08OpenCV中findContours函數(shù)參數(shù)詳解
Opencv中通過使用findContours函數(shù),簡單幾個的步驟就可以檢測出物體的輪廓,很方便。本文將和大家一起探討一下findContours方法中各參數(shù)的含義及用法,感興趣的可以了解一下2022-08-08