資料介紹
我遇到過很多程序員和計算機系畢業的學生,也給很多程序員和計算機系畢業的學生講解過《高級 C 語言程序設計》。每期班開課前,我總會問學生:你感覺 C 語言學得怎么樣?難嗎?指針明白嗎?數組呢?內存管理呢?往往學生回答說:感覺還可以,C 語言不難,指針很明白,數組很簡單,內存管理也不難。一般我會再問一個問題:通過這個班的學習,你想達到什么程度?很多學生回答:精通 C 語言。我告訴他們:我很無奈,也很無語。因為我完全在和一群業余者或者是 C 語言愛好者在對話。你們大學的計算機教育根本就是在浪費你們的時間,念了幾年大學,連 C 語言的門都沒摸著。現在大多數學校計算機系都開了 C、C++、Java、C#等等語言,好像什么都學了,但是什么都不會,更可悲的是有些大學居然取消了 C 語言課程,認為其過時了。我個人的觀點是“十鳥在林,不如一鳥在手”,真正把 C 語言整明白了再學別的語言也很簡單,如果 C 語言都沒整明白,別的語言學得再好也是花架子,因為你并不了解底層是怎么回事。當然我也從來不認為一個沒學過匯編的人能真正掌握 C 語言的真諦。我個人一直認為,普通人用 C 語言在 3 年之下,一般來說,還沒掌握 C 語言;5 年之下,一般來說還沒熟悉 C 語言;10 年之下,談不上精通。所以,我告訴我的學生:聽完我的課,遠達不到精通的目標,熟悉也達不到,掌握也達不到。那能達到什么目標?-----領你們進入 C 語言的大門。入門之后的造化如何在于你們自己。不過我可以告訴你們一條不是捷徑的捷徑:把一個鍵盤的 F10 或 F11 按壞,當然不能是垃圾鍵盤。
往往講到這里,學生眼里總是透露著疑慮。C 語言有這么難嗎?我的回答是:不難。但你就是用不明白。學生說:以前大學老師講 C 語言,我學得很好。老師講的都能聽懂,考試也很好。平時練習感覺自己還不錯,工作也很輕松找到了。我告訴學生:聽明白,看明白不代表你懂了,你懂了不代表你會用了,你會用了不代表你能用明白,你能用明白不代表你真正懂了!什么時候表明你真正懂了呢?你站在我這來,把問題給下面的同學講明白,學生都聽明白了,說明你真正懂了。否則,你就沒真正懂,這是檢驗懂沒懂的唯一標準。冰山大家都沒見過,但總聽過或是電影里看過吧?如果你連《泰坦尼克》都沒看過,那你也算個人物(開個玩笑)。《泰坦尼克》里的冰山給泰坦尼克造成了巨大的損失。你們都是理工科的,應該明白冰山在水面上的部分只是總個冰山的 1/8。我現在就告訴你們,C 語言就是這座冰山。你們現在僅僅是摸到了水面上的部分,甚至根本不知道水面下的部分。我希望通過我的講解,讓你們摸到水面下的部分,讓你們知道 C 語言到底是什么樣子。
從現在開始,除非在特殊情況下,不允許用 printf 這個函數。為什么呢?很多學生寫完代碼,直接用 printf 打印出來,發現結果不對。然后就舉手問我:老師,我的結果為什么不對啊?連調試的意識都沒有!大多數學生根本就不會調試,不會看變量的值,內存的值。只知道 printf 出來結果不對,卻不知道為什么不對,怎么解決。這種情況還算好的。往往很多時候 printf 出來的結果是對的,然后呢,學生也理所當然的認為程序沒有問題。是這樣嗎?往往不是,往后看,你能看到例子的。永遠給我記住一點:結果對,并不代表程序真正沒有問題。所以,以后盡量不要用 printf 函數,要去看變量的值,內存的值。當然,在我們目前的編譯器里,變量的值,內存的值對了就代表你程序沒問題嗎?也不是,往后,你也會看到例子的。
這個時候呢,學生往往會莫名其妙。這個老師有問題吧。大學里我們老師都教我們怎么用 printf,告訴我們要經常用 printf。這也恰恰是大學教育失敗的地方之一。很多大學老師根本就沒真正用 C 語言寫過幾行代碼,更別說教學生調試代碼了。不調試代碼,不按 F10 或F11,水平永遠也無法提上來,所以,要想學好一門編程語言,最好的辦法就是多調試。你去一個軟件公司轉轉,去看人家的鍵盤,如果發現鍵盤上的 F10 或 F11 錚亮錚亮,毫無疑問,此機的主人曾經或現在是開發人員(這里僅指寫代碼的,不上升到架構設計類的開發人員),否則,必是非開發人員。
C 語言有多少個關鍵字?sizeof 怎么用?它是函數嗎?有些學生不知道 C 語言有多少個關鍵字,大多數學生往往告訴我 sizeof 是函數,因為它后面跟著一對括號。當投影儀把這 32 個關鍵字投到幕布上時,很多學生表情驚訝。有些關鍵字從來沒見過,有的驚訝 C 語言關鍵字竟有 32 個之多。更有甚者,說大學老師告訴他們 sizeof 是函數,沒想到它居然是關鍵字!由此可想而知,大學的計算機教育是多么失敗!
下面的篇幅就一一講解這些關鍵字。但在講解之前先明確兩個概念:
什么是定義?什么是聲明?它們有何區別?
舉個例子: A)int i;
B)extern int i;(關于 extern,后面解釋)
哪個是定義?哪個是聲明?或者都是定義或者都是聲明?我所教過的學生幾乎沒有一人能回答上這個問題。這個十分重要的概念在大學里從來沒有被提起過!
什么是定義:所謂的定義就是(編譯器)創建一個對象,為這個對象分配一塊內存并給它取上一個名字,這個名字就是我們經常所說的變量名或對象名。但注意,這個名字一旦和這塊內存匹配起來(可以想象是這個名字嫁給了這塊空間,沒有要彩禮啊。^_^),它們就同生共死,終生不離不棄。并且這塊內存的位置也不能被改變。一個變量或對象在一定的區域內(比如函數內,全局等)只能被定義一次,如果定義多次,編譯器會提示你重復定義同一個變量或對象。
什么是聲明:有兩重含義,如下:
第一重含義:告訴編譯器,這個名字已經匹配到一塊內存上了(伊人已嫁,吾將何去何從?何以解憂,唯有稀粥),下面的代碼用到變量或對象是在別的地方定義的。聲明可以出現多次。
第二重含義:告訴編譯器,我這個名字我先預定了,別的地方再也不能用它來作為變量名或對象名。比如你在圖書館自習室的某個座位上放了一本書,表明這個座位已經有人預訂,別人再也不允許使用這個座位。其實這個時候你本人并沒有坐在這個座位上。這種聲明最典型的例子就是函數參數的聲明,例如:
void fun(int i, char c); 好,
這樣一解釋,我們可以很清楚的判斷:A)是定義;
B)是聲明。
那他們的區別也很清晰了。記住,定義聲明最重要的區別:定義創建了對象并為這個對象分配了內存,聲明沒有分配內存
- C語言深度解剖電子版資源下載 0次下載
- C語言深度解剖電子版下載 0次下載
- 科大訊飛的Java面試筆試題(附帶參考答案)資料免費下載 12次下載
- 《C語言深度解剖》讓你快速通過程序員面試詳細電子教材免費下載 0次下載
- c語言教程之《C語言深度剖析:解開程序員面試筆試的秘密》免費下載 0次下載
- 程序員面試寶典 0次下載
- C語言深度解剖 8次下載
- C語言深度解剖----解開程序員面試筆試的秘密 0次下載
- C語言深度解剖_解開程序員面試筆試的秘密-陳正沖編著 0次下載
- 解開程序員面試筆試的秘密-C語言深度解剖 陳正沖 編著 0次下載
- 解開程序員面試筆試的秘密-C語言深度解剖 10次下載
- C語言深度解剖-解開程序員面試筆試的秘密 72次下載
- 程序員面試寶典(pdf清晰版) 0次下載
- C語言深度解剖
- 程序員面試寶典下載(pdf電子書)
- 技術干貨驛站 ▏深入理解C語言:掌握程序結構知識 1484次閱讀
- 5款程序員最佳的代碼比較工具 5641次閱讀
- C語言與C++面試知識點總結 1881次閱讀
- 六款程序員必看的前端在線開發工具 2838次閱讀
- 使用51單片機讀寫AT29C040的C語言程序免費下載 4812次閱讀
- 嵌入式C語言的小技巧能夠減少不少代碼量 1606次閱讀
- OpenCV的Mat數據格式及其遍歷的程序資料說明 4212次閱讀
- 程序員值得一看的9本學習算法經典書籍 4w次閱讀
- 程序員眼中的浪漫,如何用C語言畫“心”? 4727次閱讀
- 華為資深工程師:程序員與碼農的差異在哪? 3731次閱讀
- 一個電子發燒友的程序員成長之路 6963次閱讀
- C語言作為高級編程語言中的一門“低級”語言為什么要學習? 8180次閱讀
- 如果是初學C語言請看完,如何學好C語言絕對精品 8769次閱讀
- 數據顯示:中國程序員是世界上最牛的程序員 661次閱讀
- 程序員真正的價值是什么? 1639次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費下載
- 0.00 MB | 1490次下載 | 免費
- 2單片機典型實例介紹
- 18.19 MB | 92次下載 | 1 積分
- 3S7-200PLC編程實例詳細資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關電源原理及各功能電路詳解
- 0.38 MB | 10次下載 | 免費
- 6基于AT89C2051/4051單片機編程器的實驗
- 0.11 MB | 4次下載 | 免費
- 7藍牙設備在嵌入式領域的廣泛應用
- 0.63 MB | 3次下載 | 免費
- 89天練會電子電路識圖
- 5.91 MB | 3次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費
- 4LabView 8.0 專業版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費
- 5555集成電路應用800例(新編版)
- 0.00 MB | 33562次下載 | 免費
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費
- 8開關電源設計實例指南
- 未知 | 21539次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537791次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233045次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191183次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183277次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138039次下載 | 免費
評論
查看更多