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