c語言缺陷與陷阱pdf
一、工具篇
「公欲善其事,必先利其器」。編程是一門實踐性很強的工作,在你以後的學習或工作中,你將常常會與以下工具打交道, 下面列出學習C語言編程常常用到的軟體和工具。
1、操作系統
在UNIX或Linux系統中學習C很方便,所以在開始您的學習旅程前請先選擇一個UNIX或Linux操作系統,目前可供個人免費使用的UNIX或Linux系統有FreeBSD、RedHat Linux、SUSE Linux等,而且在安裝包中還提供很多實用的工具,如:gcc, make等。
如果您一直使用Windows,身邊又沒有多餘的機器安裝UNIX,則可以使用VMware,通過VMware安裝虛擬系統。
2、編譯工具
目前絕大多數Unix或Lnux系統都提供CC或GCC編譯器,最簡單的cc命令格式如下:
cc -o hello hello.c
在unix shell環境中敲入上面的代碼會將hello.c程序編譯成可執行文件hello。
3、make工具
如 GNU make、System V make 和 Berkeley make 是用來組織應用程序編譯過程的基本工具,但是每個 make 工具之間又有所不同。
大部分UNIX和Linux程序都是通過運行make來編譯的。
make工具會讀取一個包含指令的文件(這個文件的名字通常都是 makefile 或 Makefile,不過後文中我們統一稱之為 「makefile」),並執行各種操作來編譯程序。
4、調試工具
最簡單的調試工具:為你的程序添加列印語句,在你對程序的運行機制有了一定的了解後,你可以實用一些工具幫助你進行調試,當然你得學習一下這些工具得使用,如:dbx,gdb等。
還有一些內存工具可以幫你查找內存泄漏或緩沖區溢出等一些問題,如:memwatch,yamd等。
5、其他工具
1)vi或vim
Unix下文本編輯器。主要靠一堆命令來編輯文本文件,學Unix編程最好熟悉並熟練使用vi編輯器。
當然在實際工作中,你可能需要一個集成編碼環境或一個功能強大的圖形化編輯工具。
提供一個中文的vim在線手冊:http://vcd.gro.clinux.org/
2)Secure shell/putty
一個支持ssh協議得客戶端工具,多數情況下用來連接linux系統。
二、書籍篇
「書是人類進步得階梯」。學習一門新的知識,當然要選擇幾本適合自己得書籍,下面介紹一些我自己學習C語言使用過的書籍:
1.《C primer plus》
推薦理由:適合作為入門書和基本函數查詢得參考資料。本書最新版為第五版,以ANSI C99為標准詳細介紹了C語言。
2.《The C programming_Language》
推薦理由:C語言之父得作品權威性毋庸置疑。雖然書籍出版時間比較老,好像也沒更新,不過仍不失為經典書籍,網上有這本書得英文電子版提供下載。
3.《C 專家編程》
推薦理由:本書可以幫助有一定經驗的C程序員成為C編程方面的專家,最關鍵的是本書寓教於樂,讓你充分享受編程的樂趣。
4.《C缺陷與陷阱》
推薦理由:書中所揭示的知識能幫助您繞過C語言自身得陷阱和缺陷,減少代碼中許多常見的Bug。
5.《unix環境高級編程》
推薦理由:既然是UNIX環境下C編程,就不得不說說UNIX編程書籍。
Stevens先生的《unix環境高級編程》是我竭力推薦的,也是我的案頭必備(如果對網路編程有興趣的,可以學習一下Stevens先生的《UNIX網路編程》兩卷,如果覺得還不過癮,可以再看看《TCP/IP詳解》三卷)。
6.《計算機編程藝術》
推薦理由:演算法大師得嘔心瀝血之作。計劃出版五卷書,目前好像已出版3卷。對演算法有興趣得可以研究一下。
三、過程篇
1.學習C語法
語法的學習對於一個具有編程底子的來說,就很輕鬆了;即使你以前沒有學習過其他編程語言,我相信有2個星期,你也能輕松搞定。
需要注意的是,不要太糾纏於語言的細節,比如:運算符優先順序與結合性的問題等。
2.學習C標准庫
ANSI C庫把函數分為不同的組,每個組都具有與之相關的頭文件。C語言標准庫相對於其他語言,比如C++,Java來說是非常短小精悍的,但首先應著重對以下庫進行學習:
ctype.h:字元處理
math.h:數學庫
stdio.h:標准I/O庫
stdlib.h:通用工具庫
string.h:字元串處理
time.h:時間和日期
如果想了解完成的ANSI C庫,你可以購買相關的書籍,這些書籍一般會詳細介紹每個函數的用戶和一些注意點;當然你也可以登陸http://www.dinkumware.com/manual ... amp;page=index.html獲取ANSI C庫詳細信息。
3.攻克C的難點
1)C語言聲明:
C語言的聲明確實讓我覺得恐怖,比較晦澀難懂,而且聲明的形式和使用的形式還類似。比如如下的聲明恐怕就連很多熟悉C多年的程序員也不是一眼就能看出來的:
char * const * (*next)();
那麼有沒有一種好的記憶方法或規則來搞清楚呢,好像沒有,如果有的話也不是這樣折磨人了。不過可以看看《C專家編程》第三章的內容,或許你會有所收獲。
也只能多學多練了,所謂熟能生巧嘛,希望這個問題不要在你的心靈上留下陰影。
2)數組與指針:
數組與指針的關系,在標准中並沒有作很詳細的規定,而且好多C入門的書籍在這個問題上並沒有給出很詳細的說明,所以會給人造成很多誤解。
對於這個問題,你可以參考《C缺陷與陷阱》4.5節和《C專家編程》第4,9,10章,相信你這裡面的內容搞透徹,以後就不會再被這個問題搞迷惑。
3)指針與內存:
如果你以後編寫規模較大的程序,你可能發現這個問題可能會是你最大的煩惱,而且可能會是你消耗最多調試時間的事項。
4)C版本的問題:
你得特別小心該問題,最好不要在你的程序中混合使用不同版本C的特性,否則會給你帶來很迷惑的問題。如果一定要用,你最好清楚自己在做什麼。
還有一些其他C中的難點和容易錯誤的地方,可以學習前人的一些經驗。以下是一個c FAQ的鏈接地址,相信在這篇文檔中有你需要的大部分問題的解決方法。
http://c-faq-chn.sourceforge.net/
4. UNIX環境編程
學習了以上內容之後,我相信,你就可以進行unix環境編程了。不過你可能需要對操作系統理論有一點點的了解,這樣學起來會比較輕松一些。
Unix環境編程,你應該著重IO和進程兩大塊內容。
《Unix環境高級編程》中對Unix環境編程有著非常詳細且深入的論述,而且書中有大量實用性例子程序,不過可能得花上幾個月得時間,好好啃一啃了。
在扎實掌握以上內容,不代表你得C語言學習支路已經完成,相反,才剛剛開始。以後你需要用學到得知識去解決大量不同實際問題,在不斷得實踐過程中,你會近一步加深對C的理解。有了以上基礎之後,你會發現,在實踐過程中需要的其他知識,你會非常快速的掌握。
B. 求C語言的教程,入門的,電子書或者視頻都ok~
C語言入門|C語言視頻|C語言電子書免費下載
鏈接: https://pan..com/s/1UazOO71Obo_Kdno3VB6hGw
語言四本經典書籍不知道你看了幾本?C程序設計語言 C和指針 C陷阱與缺陷 C專家編程
這四本看完了,那麼你的C就是差不多很厲害了.C程序設計語言那本可不是國內的,是外國的,就是二樓說的那個,最新好象是第二版,你可以上網查
C. C語言的詳細知識點
1.先學譚浩強的<<C程序設計>>,對編程有個基本了解。
2.然後找個《精彩百例》之類的書,學著做些小程序,對程序有點了解。
3.可以買本《VCXX技術內幕》,當資料翻。《C++ Primer》也是本必備的資料書。
4.這時候應該就算入門了,提高的書大把,最主要是實踐!寫程序練手吧。推薦林銳的《高質量C++程序設計》,然後就是侯捷的N本書,全部經典!
5.後面就是看《設計模式》,《編程思想》之類的書,提高自己的境界。。。。
孫鑫C++視頻教程 rmvb格式 全20CD完整版
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=156290
C++視頻教程 邊用邊學Visual C++ 6 (ASF格式)
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=177500
中山大學蔡培興 C++語言視頻教程 全51講 精品推薦
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=158073
C++程序設計視頻教程 東南大學何潔月主講 全80講(上) 48講
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=181543
C++程序設計視頻教程 東南大學何潔月主講 全80講(下) 32講
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=181546
錢能 c++程序設計教程 第二版 高清PDF版
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=166018
Essential C++ 中文版+英文版 侯捷譯
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=167578
編程點金之Visual C++(電子教程) iso
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=181036
C++程序調試實用手冊 PDF版下載
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=181037
C++面向對象多線程編程 PDF版下載
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=181038
C++高級編程參考手冊
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=145562
C++ Primer 第三版
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=145858
C++ Primer 第四版 中文版高清晰
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=177763
高質量C++編程指南
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=177759
C++ 編程思想 第1卷 標准C++導引
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=177774
C++ 編程思想 第2卷 實用編程技術
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=177770
More Effective C++ 簡體中文版
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=146871
C++ Templates 中文版+英文版
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=176004
C++ Coding Standards[Addison Wesley]
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=175999
Absolute C++ 全彩頁代碼剖析
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=175578
Accelerated C++ - Practical Programming by Example
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=177489
Inside the C++ Object Model
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=175359
More Exceptional C++ [Addison Wesley]
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=175358
Exceptional C++ [Addison Wesley]
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=175357
Sams出版 C++ Unleashed
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=163617
C++ GUI Programming with QT4
http://bbs.topsage.com/dispbbs.asp?boardID=119&ID=146734
Visual C++ 6傻瓜書 快速參考
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=173217
Visual C++ 6.0 編程實例與技巧(PDF中文版)
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=173210
Visual C++ 21天自學教程
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=173174
跟我學Visual C++ 6
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=174442
Visual C++ 6 資料庫編程 21天自學教程 CHM
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=173173
The C++ Programming Language 第三版
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=175018
深度探索C++對象模型
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=176965
Special Edition Using Visual C++ 6
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=173171
Professional MFC with VC 6
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=166005
Practical C++ Programming
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=173744
Cross-Platform Development in C++
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=174168
Iterative UML Development Using VC++ 6
http://bbs.topsage.com/dispbbs.asp?boardID=124&ID=174831
Ace Programmer's Guide
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=174449
Visual C++高級界面特效製作百例
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=168630
精通GDI+編程 清華大學出版
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=170571
D. 推薦學C語言的書
2009-10-19 07:44:50添加 1. C語言程序設計 作者 : 譚浩強
出版社 : 清華大學出版社評語 : 第0本 《C語言程序設計》譚浩強我們很少有學C語言的啟蒙書不是用這本的。如果你從來沒接觸過C語言,這本書還是適合作為入門的。盡管大學畢業之後就不再碰這本書,但是還記得當初這本書看了3遍、指針那部分看了至少5遍的那種心情。以後看了其它的書,才對C語言中的一些內容有更深的理解。相信大多數第一次接觸C語言的人都有類似的感覺。不要期望一本啟蒙的書帶給你想要的一切,一切才剛剛開始。 加入購書單已在購書單 2009-10-19 07:48:08添加 2. C程序設計語言(第二版)影印 作者 : Brian W.Kernighan,Dennis Ritchie
出版社 : 清華大學出版社評語 : 第1本 《C程序設計語言》 Brian W. Kernighan / Dennis M. Ritchie 這本書又稱為 R&K C,還有誰能比C語言之父對C語言更有發言權的呢?推薦看英文版。你會驚訝於在短短不到200頁的篇幅內,這兩位牛人將C語言描述的這么清晰。即使不專門學C語言的人也可以拿出來翻翻 加入購書單已在購書單 2009-10-19 07:44:50添加 3. C 陷阱與缺陷 作者 : (美)凱尼格 著,高巍 譯
出版社 : 人民郵電出版社評語 : 第2本 《C陷阱與缺陷》Andrew Koenig Andrew Koenig的成名作,能幫助初學者減少90%的錯誤。一些錯誤(比如賦值符、運算符優先順序等)還是不時的會在自己的程序里出現,只是已經打過預防針了,很容易發現。另外作者寫了一本《Accelerated C++》,據說是C++的最佳入門書,狠贊!! 加入購書單已在購書單 2009-10-19 07:44:50添加 4. C專家編程 作者 : (美)林登(LinDen.P.V.D) 著,徐波 譯
出版社 : 人民郵電出版社評語 : 第3本 《C專家編程》(LinDen,P.V.D)一看書名就知道這丫不能拿來入門用的,第一次看的時候夠折磨大腦的。作者聲稱,編程的唯一原因是因為樂趣。相比之前的幾本書,這本書還介紹C語言運行的環境,更全面地考察了C語言。深入分析了C語言中一些容易混淆的概念,如復雜的聲明和定義、數組和指針、鏈接和運行時庫、內存等。很值得一讀。順便一提:鏈接庫可參考《深入理解計算機系統》的動態鏈接庫一章,寫得更易讀 加入購書單已在購書單 2009-10-19 07:44:50添加 5. 編程精粹:編寫高質量C語言代碼(英文影印版) 作者 : Steve Maguire
出版社 : 人民郵電出版社評語 : 第4本 《編程精粹:編寫高質量C語言代碼》 《Writing Solid Code》 Steve Maguire 這是我讀到C語言書中最驚嘆的一本,盡管寫出沒有bug的程序不太可能,但按照作者提供的方法,可以離這個目標很近。本書關注的更多是怎麼使用C語言開發工業級產品的問題。這本書源自作者十幾年不斷的追問自己兩個簡單的問題: 1)怎樣才能自動地查出這個錯誤? 2)怎樣才能避免這個錯誤? 「他的另一部名著Debugging the Development Process(中文版《微軟加入購書單已在購書單 2009-10-19 07:44:50添加 6. C Interfaces and Implementations 作者 : David R. Hanson
出版社 : Addison-Wesley Professional評語 : 第5本 《C Interfaces and Implementations》 David R. Hanson 這本據說為唯一一本能和R&K C並駕齊驅的書,可惜中文版眾口一致說太爛,無處可載電子版,影印版跳票多年,原版USD 54.99實在承受不起,囊中羞澀,奈何奈何。想念多年,至今不能一睹芳容,深以為憾。 加入購書單已在購書單 2009-10-19 07:44:50添加 7. C標准庫\圖靈程序設計叢書 作者 : P. J. Plauger
出版社 : 人民郵電出版社評語 : 前面5本差不多夠了,另外推薦兩本,精力過剩的可以翻翻第6本 《C標准庫》P. J. Plauger 本書介紹C標准庫的實現,書中有較為詳盡的代碼。雖然這本書年代久遠,現在的實現肯定和以前也有差別,但是還是很有參考價值,特別是對C標准庫的實現有興趣的人。中文版太貴,英文電子版看得太累,還是以後有地方借的時候再繼續看。 加入購書單已在購書單 2009-10-19 07:44:50添加 8. C語言參考手冊(原書第5版) 作者 : (美)哈比森(Harbisom.S.P.)著
出版社 : 機械工業出版社評語 : 第7本 《C語言參考手冊》拿來備查的,C語言的任何細節幾乎都能在其中找到借到。書的第一部分介紹C語言語法細節。第二部分介紹運行時庫,可以和《C標准庫》參考閱讀。
E. 學習c語言看什麼書好
啥都不需要·
再去書店找本書,這本書有以下幾個特點:
1.一頁上寫的字不多,行高比較高
2.圖多~就是截圖節的多
3.例子多
4.你一拿住就知道這本書是你想看的~~
5.表聽別人跟風似得說什麼書好就買什麼,每個人的情況不一樣~
這不是
一個沒學過英語的人說我砸看不懂英文了~?
沒什麼,沒入門而已~
我2年前入的門,現在已經在寫操作系統了~~
剛入門那時候我也是什麼都不懂~慢慢的通過某個例子,明白了一些基本的東東,後面就是積累,整理了,沒入門之前啥咚咚都是很深奧的~
c語言么~其最最基本的就是下面這個例子
這就是一個可以運行的c語言程序,但是它裡面什麼都沒做~但他的的確確就是個完整的程序~
程序再大也只是在main裡面再多甜點東東~
main()
{
}
哈哈·~就是初學者都是那樣~~
不然雜叫菜鳥了~~
512167281
還沒收到~
搞定~~我這會兒下q了~晚上回來說·