為什么要學(xué)習(xí)C語言 C語言優(yōu)勢(shì)分析
不止一個(gè)學(xué)生問到我:“老師,為什么我們的應(yīng)用程序設(shè)計(jì)要學(xué)C語言而不是別的?C語言不是已經(jīng)過時(shí)了嗎?如果現(xiàn)在要寫一個(gè)Windows程序,用VB或Dephi開發(fā)多快呀,用C行嗎?退一萬步,為什么選擇C而不是C++呢?”
這個(gè)問題三言兩語還真說不全。簡(jiǎn)單來說,C語言是計(jì)算機(jī)程序語言的基礎(chǔ),是實(shí)用的程序設(shè)計(jì)工具,學(xué)好C語言對(duì)你今后學(xué)習(xí)JAVA、C++、VB等可以打下良好的基礎(chǔ),因?yàn)檫@些語言大部分都是由C語言擴(kuò)充或衍生而來的。C可以用于開發(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ù)組、鏈表、樹、圖等結(jié)構(gòu),這些東西很容易和封裝、繼承等概念打架。而用C語言則可以清楚明白地把它們表示出來。也只有真正理解了數(shù)據(jù)結(jié)構(gòu),才有機(jī)會(huì)體驗(yàn)程序設(shè)計(jì)的思想和算法的精髓。
那么為什么還會(huì)有那么多人認(rèn)為C語言過時(shí)呢?原因很簡(jiǎn)單,90%以上的中國(guó)人學(xué)的是Windows,用的是Windows,便認(rèn)為非圖形即不好。網(wǎng)上許多的觀點(diǎn)是值得懷疑的,什么時(shí)下里Java和C#流行啦,什么C語言寫出的程序沒有友好的用戶接口啦等等。然而若一個(gè)問題不用圖形接口都可以解決,那何必做得這么復(fù)雜呢?試想,如果一條信息可以告訴你現(xiàn)在的時(shí)間是什么,你又何必去翻個(gè)鬧鐘出來看看?中國(guó)人的心態(tài)總是很浮躁,什么事都想“多快好省”,可惜終究是“站在巨人的肩膀”上看問題,自己卻長(zhǎng)不成巨人(似乎認(rèn)為沒了微軟的開發(fā)工具,我們什么都做不了)。
所以學(xué)C語言的必要性就很清楚了:C語言是基礎(chǔ)(但不是簡(jiǎn)單的)。國(guó)外的人們拿C語言來處理現(xiàn)實(shí)問題,而我們現(xiàn)在還在用它來打磨自己的浮躁,所以我們距離國(guó)外的水平還太遠(yuǎn),但又不是不可企及的。
當(dāng)然,如果想在Windows上開發(fā)圖形接口,用MFC或C#、Java都比C好的多。尺有所短,寸有所長(zhǎng)。每種語言有自己適用的領(lǐng)域,C并不是萬能的,但想成為程序設(shè)計(jì)高手,不懂C是萬萬不能的。
至于為什么選擇C而不是C++,那是因?yàn)槲覀兊呐囵B(yǎng)計(jì)劃無法提供足夠的學(xué)時(shí)。想學(xué)好學(xué)精C++,沒有100學(xué)時(shí)是不夠的,而我們現(xiàn)在選擇的C語言都只有44課時(shí)的理論教學(xué)時(shí)間,面對(duì)如此豐富多彩的C世界,我已經(jīng)頗感力有不逮,許多基本內(nèi)容都得靠學(xué)生自學(xué)了,哪還能奢望C++啊?
每個(gè)程序員在他們的編程生涯中都應(yīng)該學(xué)習(xí)C語言,因?yàn)樗刑嚯y以忽視的好處了。除了它會(huì)給你提供更多的工作機(jī)會(huì)之外,C語言還會(huì)教給你更多的關(guān)于計(jì)算機(jī)的知識(shí)。它能給我們提供的裨益,,簡(jiǎn)單列舉如下:
1.相比較其他的編程語言(像C++,JAVA),C語言是個(gè)低級(jí)語言。從總體上來說,低級(jí)的編程語言可以讓你更好的了解計(jì)算機(jī)。
2.設(shè)備驅(qū)動(dòng)程序和操作系統(tǒng)只能用C語言來編寫?,F(xiàn)在,你可能還從來沒有編寫過一個(gè)設(shè)備驅(qū)動(dòng)程序或者一個(gè)操作系統(tǒng),但是如果你需要去修改他們的時(shí)候,怎么辦?
3.如果你想要得到一份編寫微控制器程序的工作的時(shí)候,該怎么辦?他們都是用C語言編寫的。就因?yàn)椴幌雽W(xué)習(xí)一門新的語言,你就準(zhǔn)備限制你能得到工作的機(jī)會(huì)嗎?
4.C的程序比其他用別的語言寫的程序,實(shí)現(xiàn)相同的功能,它用的代碼行數(shù)更少,而它帶來的運(yùn)行效率卻更快。有時(shí)候,你的程序所需要的速度,只有C語言能做到。
5.如果你學(xué)習(xí)過C語言,你就能學(xué)習(xí)現(xiàn)在任何的高級(jí)編程語言。因?yàn)樗械母呒?jí)語言都是以C語言為基礎(chǔ)的(像JAVA,C++,C#等等)。
6.因?yàn)镃語言已經(jīng)存在很多年了,它有廣泛的使用團(tuán)體并且有大量的現(xiàn)成代碼可以利用。這就使你能在過去程序的基礎(chǔ)上,快速和高效的編寫新的算法和函數(shù)。
7.C語言是一個(gè)開源組織的語言。一個(gè)開源組織的產(chǎn)物--LINUX,就是用C語言寫的。如果你會(huì)C語言,你就能參加這個(gè)組織并且還能向眾多的開源組織投稿,比如參加Source Forge并且給他們投稿。
8.C語言是唯一一個(gè)向你闡述指針的本質(zhì)的語言。而C#和Java干脆跳過了指針這個(gè)題目??墒侵羔槾_實(shí)使C語言變得更加強(qiáng)大。
9.找編程開發(fā)方面的工作時(shí),C語言仍然是最普遍需要的語言。所以它值得你花時(shí)間去學(xué)會(huì)它。
10.任何里面有微處理器的設(shè)備都支持C語言。從微波爐到手機(jī),都是由C語言技術(shù)來推動(dòng)的。
11.好了,說了這么多,大家應(yīng)該感到我們應(yīng)該學(xué)習(xí)C語言的必要性和迫切性了吧!那就趕快學(xué)吧!讓它成為我們?nèi)〉酶蟪晒Φ碾A梯!
欄 目:C語言
本文標(biāo)題:為什么要學(xué)習(xí)C語言 C語言優(yōu)勢(shì)分析
本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/4285.html
您可能感興趣的文章
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 01-10千萬不要被階乘嚇倒
- 01-10深入第K大數(shù)問題以及算法概要的詳解
- 01-10深入理解堆排序及其分析
- 01-10基于c中使用ftruncate()前需要fflush(),使用后需要rewind()的深入探討
- 01-10解析C/C++中如何終止線程的運(yùn)行
- 01-10C/C++ 多線程的學(xué)習(xí)心得總結(jié)
- 01-10C++ 智能指針深入解析
- 01-10函數(shù)指針與指針函數(shù)的學(xué)習(xí)總結(jié)
- 01-10C++初始化列表學(xué)習(xí)


閱讀排行
- 1C語言 while語句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹的示例代碼(圣誕
- 3利用C語言實(shí)現(xiàn)“百馬百擔(dān)”問題方法
- 4C語言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言的正則匹配函數(shù) c語言正則表達(dá)
- 04-02c語言用函數(shù)寫分段 用c語言表示分段
- 04-02c語言中對(duì)數(shù)函數(shù)的表達(dá)式 c語言中對(duì)
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段
- 04-02C語言中怎么打出三角函數(shù) c語言中怎
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求
隨機(jī)閱讀
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-10使用C語言求解撲克牌的順子及n個(gè)骰子
- 04-02jquery與jsp,用jquery
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 01-10C#中split用法實(shí)例總結(jié)
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 01-10delphi制作wav文件的方法
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置