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