C語言簡介
C語言是一門通用計(jì)算機(jī)編程語言,應(yīng)用廣泛。C語言的設(shè)計(jì)目標(biāo)是提供一種能以簡易的方式編譯、處理低級(jí)存儲(chǔ)器、產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語言。
盡管C語言提供了許多低級(jí)處理的功能,但仍然保持著良好跨平臺(tái)的特性,以一個(gè)標(biāo)準(zhǔn)規(guī)格寫出的C語言程序可在許多電腦平臺(tái)上進(jìn)行編譯,甚至包含一些嵌入式處理器(單片機(jī)或稱MCU)以及超級(jí)電腦等作業(yè)平臺(tái)。
C語言是一門面向過程的計(jì)算機(jī)編程語言,與C++,Java等面向?qū)ο蟮木幊陶Z言有所不同。
C語言的優(yōu)點(diǎn)
1、程序結(jié)構(gòu)簡潔、緊湊、規(guī)整,表達(dá)式簡練、使用靈活。
2、編寫的程序可讀性強(qiáng),編譯效率高。
3、具有豐富的運(yùn)算符,多達(dá)34種。豐富的數(shù)據(jù)類型與豐富的運(yùn)算符相結(jié)合,使C語言具有表達(dá)靈活和效率高等特點(diǎn)。
4、數(shù)據(jù)類型種類繁多。C語言具有5種基本的數(shù)據(jù)類型和多種構(gòu)造數(shù)據(jù)類型以及復(fù)合的導(dǎo)出類型,同時(shí)還提供了與地址密切相關(guān)的指針機(jī)器運(yùn)算符。指針可以指向各種類型的簡單變量、數(shù)組、結(jié)構(gòu)和聯(lián)合,乃至函數(shù)等。此外,C語言還允許用戶自己定義數(shù)據(jù)類型。
5、是一種結(jié)構(gòu)化程序設(shè)計(jì)語言,特別適合大型程序的模塊化設(shè)計(jì)。C語言具有編寫結(jié)構(gòu)化程序所必需的基本流程控制語句,C語言程序是由函數(shù)集合構(gòu)成的,函數(shù)各自獨(dú)立,并且作為模塊化設(shè)計(jì)的基本單位。
C語言的源文件,可以分割成多個(gè)源程序,分別進(jìn)行編譯,然后連接起來構(gòu)成可知性的目標(biāo)文件,為開發(fā)大型軟件提供了極大的方便。C語言還提供了多種存儲(chǔ)屬性,使數(shù)據(jù)可以按其需要在相應(yīng)的作用域起作用,從而提高了程序的可靠性。
6、語法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大。例如,對(duì)數(shù)組下標(biāo)越界不作檢查,由程序編寫者自己保證程序的正確。一般的高級(jí)語言語法檢查比較嚴(yán),能檢測出幾乎所有的語法錯(cuò)誤,而C語言允許程序編寫者有較大的自由度,因此放寬了語法的檢查。程序員應(yīng)當(dāng)仔細(xì)檢查程序,保證其正確,而不要過分依賴C語言編譯程序去查錯(cuò)。
7、允許直接訪問物理地址,能進(jìn)行位(bit)操作,能實(shí)現(xiàn)匯編語言的大部分功能,可以直接對(duì)硬件進(jìn)行操作。因此,C語言既具有高級(jí)語言的功能,又兼容低級(jí)語言的許多功能,可用來編寫系統(tǒng)軟件。
8、生成的目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。它一般只比匯編程序生成的目標(biāo)代碼率低10%~20%。
9、具有較高的可移植性。它的語句基本上無須修改就能用于各種型號(hào)的計(jì)算機(jī)和各種操作系統(tǒng)。
10、任何里面有微處理器的設(shè)備都支持C語言。從微波爐到手機(jī),都是由C語言技術(shù)來推動(dòng)的。
C語言入門書籍推薦
一、入門書籍推薦
1、CProgramming:AModernApproach(C語言程序設(shè)計(jì):現(xiàn)代方法)
簡介:《C語言程序設(shè)計(jì):現(xiàn)代方法》是C語言的經(jīng)典之作,被譽(yù)為“近10年來
最好的一部C語言著作”。書中討論了標(biāo)準(zhǔn)C和C標(biāo)準(zhǔn)庫的全部特性,包括信號(hào)、setjmp/longjmp和可變參數(shù)列表等其他書中很少涉及的內(nèi)容。全書由易而難、循序漸進(jìn)、螺旋式地講述C語言,很好地處理了指針和位運(yùn)算等難點(diǎn)。第2版覆蓋了C99標(biāo)準(zhǔn),并提供了對(duì)所有C99庫函數(shù)的參考,還擴(kuò)展了GCC的內(nèi)容,增加了對(duì)抽象數(shù)據(jù)類型的討論,并針對(duì)新CPU和操作系統(tǒng)做了更新。《C語言程序設(shè)計(jì):現(xiàn)代方法》尤為強(qiáng)調(diào)軟件工程和現(xiàn)代編程理念,在知識(shí)的闡述中突出工業(yè)界的最佳實(shí)踐、實(shí)際經(jīng)驗(yàn)和編程風(fēng)格,使讀者能夠合理運(yùn)用所學(xué),編寫出可讀性好、可靠性高和容易維護(hù)的代碼。書中精心選擇了近500道習(xí)題,貼近實(shí)戰(zhàn),與敘述文字相得益彰。
目前《C語言程序設(shè)計(jì):現(xiàn)代方法》已被全球200多所學(xué)校采用為教材,包括哈佛大學(xué)、麻省理工學(xué)院、斯坦福大學(xué)、加州大學(xué)伯克利分校、耶魯大學(xué)、加州理工學(xué)院等諸多名校。
C語言程序設(shè)計(jì)
2、CPrimerplus5th內(nèi)容提要:
本書全面講述了C語言編程的相關(guān)概念和知識(shí)。
全書共17章。第1、2章學(xué)習(xí)C語言編程所需的預(yù)備知識(shí)。第3到15章介紹了C語言的相關(guān)知識(shí),包括數(shù)據(jù)類型、格式化輸入輸出、運(yùn)算符、表達(dá)式、流程控制語句、函數(shù)、數(shù)組和指針、字符串操作、內(nèi)存管理、位操作等等,知識(shí)內(nèi)容都針對(duì)C99標(biāo)準(zhǔn);另外,第10章強(qiáng)化了對(duì)指針的討論,第12章引入了動(dòng)態(tài)內(nèi)存分配的概念,這些內(nèi)容更加適合讀者的需求。第16章和第17章討論了C預(yù)處理器和C庫函數(shù)、高級(jí)數(shù)據(jù)表示(數(shù)據(jù)結(jié)構(gòu))方面的內(nèi)容。附錄給出了各章后面復(fù)習(xí)題、編程練習(xí)的答案和豐富的C編程參考資料。
本書適合希望系統(tǒng)學(xué)習(xí)C語言的讀者,也適用于精通其他編程語言并希望進(jìn)一步掌握和鞏固C編程技術(shù)的程序員。
作者簡介:
StephenPrata在加利福尼亞州的Kentfield的Marin學(xué)院教授天文學(xué)、物理學(xué)和程序設(shè)計(jì)課程。他在加州工業(yè)學(xué)院獲得學(xué)士學(xué)位,從加州大學(xué)伯克利分校獲得博士學(xué)位。他最早接觸計(jì)算機(jī),始于對(duì)星河的計(jì)算機(jī)建模。Stephen已經(jīng)編寫或與他人合作編寫了十多本書。其中包括C++PrimerPlus和UnixPrinmerPlus。
3、譚浩強(qiáng)第三版
國內(nèi)非常普及的學(xué)語言入門書籍,很多學(xué)校都是用它作為教材,對(duì)于C語言入門來說比較通俗易懂。不過書中有些地方不夠嚴(yán)謹(jǐn),需要注意一些問題。
二、進(jìn)階書籍推薦
1、TheCProgrammingLanguageSecondEdition
byBrianW.Kernighan,DennisM.Ritchie.PrenticeHallPTRC程序設(shè)計(jì)語言第2版·新版。
本書是由C語言的設(shè)計(jì)者BrianW.Kernighan和DennisM.Ritchie編寫的一部介紹標(biāo)準(zhǔn)C語言及其程序設(shè)計(jì)方法的權(quán)威性經(jīng)典著作。全面、系統(tǒng)地講述了C語言的各個(gè)特性及程序設(shè)計(jì)的基本方法,包括基本概念、類型和表達(dá)式、控制流、函數(shù)與程序結(jié)構(gòu)、指針與數(shù)組、結(jié)構(gòu)、輸入與輸出、UNIX系統(tǒng)接口、標(biāo)準(zhǔn)庫等內(nèi)容。
本書的講述深入淺出,配合典型例證,通俗易懂,實(shí)用性強(qiáng),適合作為大專院校計(jì)算機(jī)專業(yè)或非計(jì)算機(jī)專業(yè)的C語言教材,也可以作為從事計(jì)算機(jī)相關(guān)軟硬件開發(fā)的技術(shù)人員的參考書。
在計(jì)算機(jī)發(fā)展的歷史上,沒有哪一種程序設(shè)計(jì)語言像C語言這樣應(yīng)用如此廣泛。本書原著即為C語言的設(shè)計(jì)者之一DennisM.Ritchie和著名的計(jì)算機(jī)科學(xué)家BrianW.Kernighan合著的一本介紹C語言的權(quán)威經(jīng)典著作。我們現(xiàn)在見到的大量論述C語言程序設(shè)計(jì)的教材和專著均以此書為藍(lán)本。原著第1版中介紹的C語言成為后來廣泛使用的C語言版本——標(biāo)準(zhǔn)C的基礎(chǔ)。人們熟知的“hell,World”程序就是由本書首次引入的,現(xiàn)在,這一程序已經(jīng)成為所有程序設(shè)計(jì)語言入門的第一課。原著第2版根據(jù)1987年制定的ANSIC標(biāo)準(zhǔn)做了適當(dāng)?shù)男抻啠肓?a href="http://www.qldv.cn/article/zt/" target="_blank">最新的語言形式,并增加了新的示例,通過簡潔的描述、典型的示例,作者全面、系統(tǒng)、準(zhǔn)確地講述了C語言的各個(gè)特性以及程序設(shè)計(jì)的基本方法。對(duì)于計(jì)算機(jī)從業(yè)人員來說,本書是一本必讀的程序設(shè)計(jì)語言方面的參考書。
2、PointersonC(C和指針)
凸現(xiàn)指針對(duì)C的重要性。提供寶貴的提示和智慧的警告。
本書提供與C語言編程相關(guān)的全面資源和深入討論。本書通過對(duì)指針的基礎(chǔ)知識(shí)和高級(jí)特性的探討,幫助程序員把指針的強(qiáng)大功能融入到自己的程序中去。
全書共18章,覆蓋了數(shù)據(jù)、語句、操作符和表達(dá)式、指針、函數(shù)、數(shù)組、字符串、結(jié)構(gòu)和聯(lián)合等幾乎所有重要的C編程話題。書中給出了很多編程技巧和提示,每章后面有針對(duì)性很強(qiáng)的練習(xí),附錄部分則給出了部分練習(xí)的解答。
本書適合C語言初學(xué)者和初級(jí)c程序員閱讀,也可作為計(jì)算機(jī)專業(yè)學(xué)生學(xué)習(xí)c語言的參考。
3、CTrapsandPitfalls(C陷阱與缺陷)
作者以自己1985年在Bell實(shí)驗(yàn)室時(shí)發(fā)表的一篇論文為基礎(chǔ),結(jié)合自己的工作經(jīng)驗(yàn)擴(kuò)展成為這本對(duì)C程序員具有珍貴價(jià)值的經(jīng)典著作。寫作本書的出發(fā)點(diǎn)不是要批判C語言,而是要幫助C程序員繞過編程過程中的陷阱和障礙。
全書分為8章,分別從詞法分析、語法語義、連接、庫函數(shù)、預(yù)處理器、可移植性缺陷等幾個(gè)方面分析了C編程中可能遇到的問題。最后,作者用一章的篇幅給出了若干具有實(shí)用價(jià)值的建議。
本書適合有一定經(jīng)驗(yàn)的C程序員閱讀學(xué)習(xí),即便你是C編程高手,本書也應(yīng)該成為你的案頭必備書籍。
《C陷阱與缺陷》AndrewKoenigAndrewKoenig的成名作,能幫助初學(xué)者減少90%的錯(cuò)誤。一些錯(cuò)誤(比如賦值符、運(yùn)算符優(yōu)先級(jí)等)還是不時(shí)的會(huì)在自己的程序里出現(xiàn),只是已經(jīng)打過預(yù)防針了,很容易發(fā)現(xiàn)。
4、ExpertCProgramming(C專家編程)
《C專家編程》展示了最優(yōu)秀的C程序員所使用的編碼技巧,并專門開辟了一章對(duì)C++的基礎(chǔ)知識(shí)進(jìn)行了介紹。
書中C的歷史、語言特性、聲明、數(shù)組、指針、鏈接、運(yùn)行時(shí)、內(nèi)存以及如何進(jìn)一步學(xué)習(xí)C++等問題進(jìn)行了細(xì)致的講解和深入的分析。全書擷取幾十個(gè)實(shí)例進(jìn)行講解,對(duì)C程序員具有非常高的實(shí)用價(jià)值。
本書可以幫助有一定經(jīng)驗(yàn)的C程序員成為C編程方面的專家,對(duì)于具備相當(dāng)?shù)腃語言基礎(chǔ)的程序員,本書可以幫助他們站在C的高度了解和學(xué)習(xí)C++即使你讀過AndyKoneig的《C陷阱與缺陷》,你還是應(yīng)該看看PeterVanDerLinden的書。我想,他們兩人的書稱都應(yīng)該千方百計(jì)的搞到,如獲至寶地捧讀。如果我是你的上司,這是必須的要求。
5、CInterfacesandImplementations(C語言接口與實(shí)現(xiàn))
本書概念清晰、內(nèi)容新穎、實(shí)例詳盡,是一本有關(guān)設(shè)計(jì)、實(shí)現(xiàn)和有效使用C語言庫函數(shù),掌握創(chuàng)建可重用C語言軟件模塊技術(shù)的參考指南。本書倡導(dǎo)基于接口的C語言設(shè)計(jì)理念及其實(shí)現(xiàn)技術(shù),深入詳細(xì)地描述了24個(gè)C語言接口及其實(shí)現(xiàn)。本書通過敘述如何用一種與語言無關(guān)的方法將接口的設(shè)計(jì)與實(shí)現(xiàn)獨(dú)立開來,從而形成一種基于接口的設(shè)計(jì)途徑來創(chuàng)建可重用的API。本書是一本針對(duì)C語言程序員的不可多得的好書,也是值得所有希望掌握可重用軟件模塊技術(shù)的讀者閱讀的參考書籍。
-
C語言
+關(guān)注
關(guān)注
180文章
7614瀏覽量
137694
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論