這習題還真是江夏這小子出的。
國內剛開始有人學C語言的時候,磕磕絆絆的。這門語言是我們自己人搗鼓出來的不假,可搗鼓它的人一天到晚見不著影……
想請教問題?找不著人。
論壇上有人發帖抱怨:“某人又跑了。這個指向指標的指標,到底是個啥玩意兒?書上說‘指標變數存放的是地址,指向指標的指標存放的是指標變數的地址’。
看看,這一堆的指標,某個人到底是怎麼寫出來的?字我是背得滾瓜爛熟,可一寫程式碼就懵。誰救救我,卡了三天了!”
底下跟了一串:“同卡”
“同卡”
“+1”。
當然也有天之聰慧一看就會的。
但那兩個問題青年早就沉浸在自己的世界中無法自拔了,想讓金珍和胖墩他倆幹活沒問題,可是讓他們教人……
還是算了吧。
就像螢幕前的你一樣,你也不會想著去和螞蟻交流是吧。
後來還是雲貴大師兄出來說了句公道話:“小師弟忙,咱們自己琢磨。琢磨不透的先放著,等他回來再問。”
“呸!你個搞DOS的,核心是組合語言,你是站著說話不腰疼!”
“搞DOS怎麼了?彙編怎麼了?吃你家大米了?
彙編不也要一條一條指令背,一個一個暫存器記?C語言再難,它有彙編難嗎?彙編你寫錯一個暫存器,程式跑飛了連個報錯都沒有,C語言至少還給你個段錯誤,讓你知道死在哪了。”
(⊙o⊙)…,也對哈。最起碼C語言有回饋,最起碼找出錯的地方能快點……
個屁啊!
那破指標指來指去的,很容易把人腦子繞成麻花好不?
雖然說多了都是淚,可該等還是要等。
可等著等著,問題越積越多。學語言這種事,卡住的地方不解決,後面的就學不下去。論壇上哀鴻遍野,眼看著就要偃旗息鼓了。
然後江夏出現了。不是回來答疑,是出了一套題。
“閒著也是閒著,做幾道題練練手。”
第一道題:“用遞迴函式解決漢諾塔問題。如果有64個盤子,最少需要移動多少次?用遞迴怎麼推導?”
第二道:“用指標實現動態記憶體分配。寫一段程式碼,輸入一個整數n,動態分配一個長度為n的陣列,然後輸入n個數,排序後輸出。”
第三道:“判斷迴文字串。寫一個函式,判斷一個字串是否是迴文(不考慮大小寫和標點)。”
第四道、第五道、第六道……一口氣出了十幾道。
然後江夏把答案貼在後面,說了一句:“自己學去吧。”
論壇上安靜了三天。三天之後,開始有人交作業。有人做出來了,有人卡在某一道題上,有人做完了又發現了新問題。
江夏偶爾回來看一眼,不直接給答案,只是在卡住的地方點一句:“指標的地址傳遞再想想。”
“遞迴的終止條件寫對了嗎?”
就這麼一句一句地“點”,硬是把那幫人點明白了。
後來有人統計,江夏在論壇上出的題,前前後後加起來有上百道。從基礎語法到資料結構,從演算法分析到系統設計,一道一道,像鋪石子路一樣,把那條坑坑窪窪的路給鋪平了。
為甚麼江夏這麼熟悉C語言?
沒辦法,後世大學課程裡,自動化這個專業,從大一開始就跟C語言綁死了。
C語言程式設計是必修課,資料結構要用C寫,《微控制器原理與應用》用C51,《嵌入式系統開發》還是C。
大二學《計算機控制技術》,PID演算法用C實現;
大三學《數字訊號處理》,濾波器用C模擬;
大四做畢業設計,隨便哪個課題都少不了幾行C程式碼。
四年下來,別的語言可能生疏了,C語言是刻進腦子裡的東西。
江夏在後世讀書那會兒,最煩的就是C語言課設。
課設要求搞個學生管理系統,他非要搞個步進電機PID調速的實時控制程式,結果指標滿天飛,段錯誤調到凌晨三點,舍友都睡了他還在gdb。
(gdb是GNU Debugger的縮寫,GNU偵錯程式。江夏在後世讀書時遇到“段錯誤”,就是程式試圖訪問不該訪問的記憶體地址,通常是野指標惹的禍。這種情況,就要靠gdb一行一行地排查,找到到底是哪個指標指向了錯誤的地方。
誒,說多了都是淚……gdb多了,真的會掛的。)
後來江夏總結出一條規律:C語言這東西,你越是怕指標,指標越是找你。你把它當朋友,天天寫天天調,寫到後來自然就熟了。
所以當他在論壇上看見那些學C語言的同志們卡在“指標的指標”上時,江夏太知道那種感覺了。
他出的那些題,一些是從後世教科書上抄的,一些則是把自己當年踩過的坑、熬過的夜、調過的bug,一道一道挖出來,讓別人不用再踩一遍。
這種填鴨式的方式,後世搞學校相關工作的人看見了,大概搖搖頭:“這不是培養機器嗎?”
“理解了嗎就做題?”
“學程式設計要靠興趣,不能靠刷題。”
可那是後世。
現在的華國,學C語言的人,誰跟你談興趣?
他們只知道,這東西是國家需要的,是國防需要的,是搞出大黃三代、搞出大小姐的轎子以及天上的眼睛需要的。
沒有興趣班,沒有課外讀物,只有一個見不著影的“老師”,和一堆被扔在論壇上的題。
做題!
不會?
看答案。
看不懂?翻回去想。
想不通?繼續做。
就這麼一遍一遍地啃,一遍一遍地磨,把那些程式碼、那些演算法、那些邏輯,硬生生刻進腦子裡。
後來雲貴大師兄在論壇跟江夏說:“你那套題,我做了三遍。第一遍做完,覺得會了。第二遍做完,覺得之前是瞎了。第三遍做完,覺得還能再學點新的。”
江夏一邊感慨後世教材還是太權威了,一邊回帖,就八個字:“多做幾遍,自然就通了。”
現在,這些題被印成了書,裝進木箱,漂洋過海,擺在了萊比錫書展的展臺上。