關(guān)于我們
書單推薦
新書推薦
|
C語言其實很簡單
《C語言其實很簡單》是為零基礎(chǔ)的C語言初學(xué)者量身定做的,特別適合非計算機(jī)專業(yè)的讀者自學(xué)C語言。本書盡量避免使用專業(yè)術(shù)語,利用大量貼近生活的實例,用通俗易懂的方式講解C語言的基本概念和基本編程方法,并提供許多獨特的小竅門、小技巧、小口訣等,使讀者在輕松的環(huán)境中花費很少的時間就能掌握C語言,并應(yīng)用自如!禖語言其實很簡單》兼顧了全國計算機(jī)等級考試二級C語言程序設(shè)計考試大綱的相關(guān)要求,可以作為等級考試輔導(dǎo)教材和培訓(xùn)班教材使用。對于大、中專院校師生、各類C語言應(yīng)試備考人員、廣大C語言編程愛好者,都具有很好的學(xué)習(xí)參考價值。
最接地氣的C語言圖書,擁有3個最顯著的特點,那就是——不用啃,不用啃,真的不用啃!
為零基礎(chǔ)的初學(xué)者量身定做,讓讀者在十分輕松的環(huán)境中花費最少的時間掌握C語言。通過本書學(xué)習(xí)C語言,讀者會很快抓住知識的“根”,因而事半功倍!
你是否以前嘗試學(xué)習(xí)過C語言但又放棄了,或者是學(xué)習(xí)得一知半解,或者還是一位對C語言“一竅不通”的初學(xué)者?那么本書正適合你!
C語言功能強(qiáng)大,內(nèi)容繁多,最容易讓初學(xué)者摸不到“門”。因此,本書并不像大多專業(yè)C語言教科書那樣“板起面孔教人”,不羅列知識點,不使用專業(yè)術(shù)語來云山霧罩地分析問題,而是引用大量貼近生活的實例,用通俗易懂的方式與讀者交流。同時,本書還提供了許多獨特的小竅門、小技巧、小口訣、順口溜等,用句流行話說,那是比較“接地氣”的。目的只有一個:讓不是科班出身的零基礎(chǔ)初學(xué)者在輕松的環(huán)境中花費很少的時間來掌握C語言。 “大凡是講編程的書,一定不好啃!边@恐怕是許多初學(xué)者和正在應(yīng)對各種C語言考試的讀者在學(xué)習(xí)道路上困惑的心聲。筆者這里要告訴讀者的是,本書擁有3個最顯著的特點,那就是——不用啃,不用啃,真的不用啃!筆者已在C語言教學(xué)一線從教多年,深諳初學(xué)者的學(xué)習(xí)弱點。為此,從初學(xué)者角度出發(fā),本書精煉了C語言教學(xué)的內(nèi)容,在保證知識體系完整的基礎(chǔ)上省去了許多無關(guān)緊要又晦澀難懂的專業(yè)知識,使本書內(nèi)容既不過于復(fù)雜,又能滿足一般編程的實際需要,更主要的是可以滿足大多C語言考試(如全國計算機(jī)等級考試)的要求。尤其針對從一線教學(xué)中搜集到的許多初學(xué)者普遍認(rèn)為的學(xué)習(xí)困難和容易誤解的知識點,本書都用通俗易懂的方式做了大量的分析解讀,盡最大努力幫助讀者理清頭緒、澄清概念,將對知識的誤解消弭于無形。因此通過本書來學(xué)習(xí)C語言,讀者會很快抓住知識的“根”,因而能達(dá)到事半功倍的效果! 學(xué)好C語言,方法是關(guān)鍵。本書會教給讀者許多獨特、有效的學(xué)習(xí)方法,但在這里筆者希望再強(qiáng)調(diào)一點:不少讀者像學(xué)習(xí)英語一樣來學(xué)習(xí)C語言,他們花大把的時間用來背誦程序,認(rèn)為解決一個問題只對應(yīng)著一個固定的程序:“熟讀唐詩三百首,不會吟詩也會吟”,我“熟背程序三百篇,焉能還得不會編?”,這是大錯特錯的!因為實際問題千變?nèi)f化,背誦的程序和實際問題不可能完全一樣,因此縱使背下上千個程序,遇到實際問題還是難以下手。程序的運(yùn)行是動態(tài)的,解決同一個問題不同的人編出的程序也不會完全相同。因此,學(xué)習(xí)程序設(shè)計實際是學(xué)習(xí)程序設(shè)計的思路和方法,完全沒有必要背程序。而初學(xué)者的這種錯誤認(rèn)識,究根溯源還是因為“照本宣科”的教科書。很多C語言的教科書,其中的程序例子確實很像“英文小短文”,一個問題對應(yīng)著一個程序,并且在靜態(tài)的紙上講出程序運(yùn)行的動態(tài)過程著實不易。為此,本書為典型程序例子都配有內(nèi)存空間及變量值變化的插圖,這些插圖是比較“另類”的,以清晰反映程序的運(yùn)行過程和變量值的變化為初衷,而不是只截個圖給出程序的運(yùn)行結(jié)果。這使讀者可以更多地關(guān)注程序運(yùn)行的過程,而不是只關(guān)注程序運(yùn)行的結(jié)果。在“運(yùn)動”中掌握程序,這也算是本書與大眾化教科書所不同的另一個特點吧。 如何能掌握程序設(shè)計的方法,在遇到五花八門的實際問題時都能應(yīng)對自如,編出對應(yīng)的程序?不要和我講“融會貫通”“靈活運(yùn)用”,那是頗有經(jīng)驗的編程高手們的事,而本書所關(guān)注的是初學(xué)者。為此,本書提供了許多編程“套路”,從典型的程序例子中理出“套路”,就能應(yīng)對一大批的實際問題。學(xué)習(xí)武術(shù)有套路,沒想到學(xué)習(xí)編程也有套路吧!用套路學(xué)習(xí)編程,讓初學(xué)者迅速掌握編程方法,很快就能具有解決實際問題的編程能力,這也算是本書與大眾化教科書所不同的又一個特點。 本書還拋磚引玉地介紹了數(shù)據(jù)結(jié)構(gòu)、軟件設(shè)計、數(shù)據(jù)庫等最基本的知識,使讀者在C語言學(xué)習(xí)之后向更高層次邁進(jìn)。這些內(nèi)容兼顧了全國計算機(jī)等級考試二級《公共基礎(chǔ)》的相關(guān)考點。由于公共基礎(chǔ)的考試內(nèi)容對各類科目的二級考試都是相同的,不只局限于二級C語言,因此它們也可作為參加各類科目二級考試的讀者備考《公共基礎(chǔ)》的復(fù)習(xí)參考資料。 在本書最后還配有索引,“索引在手,遺忘不愁”?v使有些學(xué)過的知識忘記了,也可以通過索引很快地找回來并復(fù)習(xí)鞏固。本書索引既可以對C語言的基本概念進(jìn)行速查,也可以對C語言的語句、關(guān)鍵字、運(yùn)算符進(jìn)行速查,還可以對基本的程序設(shè)計方法進(jìn)行速查。 希望讀者讀過本書后,真正能把C語言用起來,讓它成為我們身邊的好朋友、好伙伴。倘能達(dá)到這個目的,筆者就感到心滿意足了。 本書的獨特欄目 在本書正文中,將穿插有以下欄目: 【腳下留心】針對初學(xué)者最容易犯的錯誤,或是在學(xué)習(xí)過程中,在編程實踐時最應(yīng)該引起注意的地方,都用“腳下留心”給出強(qiáng)調(diào)。零基礎(chǔ)的初學(xué)者,緊緊抓住這些方面,就能在學(xué)習(xí)和編程實踐中減少或避免很多不必要的彎路,為學(xué)習(xí)節(jié)省大量的時間。如果你正在應(yīng)試,更要注意,這些內(nèi)容往往都是高頻出題但稍不留神就要丟分的。 腳下留心 忘記分號是初學(xué)者最易犯的錯誤之一。每條語句后的分號“;”千萬別忘掉! 【高手進(jìn)階】是進(jìn)一步提高水平的知識,一般比較深入或有些難度。“高手進(jìn)階”中的內(nèi)容讀者都可以根據(jù)興趣選擇閱讀,跳過這些內(nèi)容對后續(xù)章節(jié)知識體系的連貫性和整個C語言的學(xué)習(xí)都不會有影響。 高手進(jìn)階 數(shù)字字符與對應(yīng)整數(shù)的二進(jìn)制只有2位之差,例如字符'5'(即53)的二進(jìn)制為0011 0101,整數(shù)5的二進(jìn)制為0000 0101。前者第4、5位均為1(最右端為第0位),后者這兩位均為0,而兩者后4位是一致的0101,都表示十進(jìn)制的5。還有,為什么'A'的ASCII碼是65,'a'的ASCII碼是97呢?作為字母表的第一個字母,為何大寫從5開始,小寫從7開始,似乎都不太“整”。把它們轉(zhuǎn)換為二進(jìn)制,答案立顯!65的二進(jìn)制是0100 0001,97的二進(jìn)制是0110 0001,后5位0 0001都表示十進(jìn)制的1,說明'A'、'a'是第一個字母。試著把字母表的第二個字母'B'或'b'的ASCII碼轉(zhuǎn)換為二進(jìn)制,你會發(fā)現(xiàn)后5位都表示十進(jìn)制的2。 【竅門秘笈】學(xué)習(xí)重在方法,方法得當(dāng),既可以節(jié)省學(xué)習(xí)時間,又能加深印象!案[門秘笈”是學(xué)習(xí)方法的匯總,或是學(xué)習(xí)的小技巧、小竅門,或是概念的總結(jié),還有輕松記憶知識點的順口溜。我們的編程套路也將在竅門秘笈中給出。對于初學(xué)者,這些都是快速掌握C語言的捷徑。 竅門秘笈 以變量類型為準(zhǔn)的自動類型轉(zhuǎn)換規(guī)則可總結(jié)為口訣如下: 變量定空間,塑身再搬遷。 若為空間窄,舍點也情愿。 【小游戲】編程不只是枯燥的工作,它也能充滿樂趣。寓學(xué)于樂,寓編于樂,倘能達(dá)到這個境界,儼然不就是一位高手了嗎?本書在正文中還穿插了一些小游戲,映襯相關(guān)的知識點,讓讀者在游戲中掌握編程! 小游戲 現(xiàn)有一架天平和4種重量的砝碼,分別重8克、4克、2克、1克,每種重量的砝碼只有一個,F(xiàn)要用此天平稱重13克的物體,物體放在左盤上,如圖1-20所示。請問在右盤上應(yīng)該怎樣選放4種砝碼,才能使天平左右兩盤重量相同天平平衡呢? 程序示例和習(xí)題 【程序示例】學(xué)習(xí)編程,程序例子是必不可少的。對于程序示例,本書都精心做了安排。在突出知識點的基礎(chǔ)上,本書程序示例所遵循的原則是:或者讓趣味指數(shù)都在三星 ★★★以上,旨在提高讀者的編程興趣;或者讓難度都在一星★以下,旨在簡單明了、一針見血地說明問題。 【隨講隨練】是本書的習(xí)題,這些都是針對大多C語言考試的高頻考點精心設(shè)計的,其中一部分為全國計算機(jī)等級考試二級C語言程序設(shè)計的歷年考試真題或無紙化考試改革后的題庫真題,供讀者鞏固復(fù)習(xí)之用。本書習(xí)題的特色是“隨講隨練”,每道題都安排在相應(yīng)知識點講解的正文之后,并在題后直接給出了答案。這避免了在章后統(tǒng)一安排習(xí)題所帶來的向前查閱知識、向后查看答案的弊端,減少了讀者反復(fù)翻書的無用功。讀者可一氣呵成,通讀本書,就能有學(xué)有練。 【小試牛刀】這些不作為正式習(xí)題,而主要是思考題的性質(zhì),也將穿插在相應(yīng)知識點的講解中。讀者利用剛剛所學(xué)知識可以馬上試一試身手,或是鞏固所學(xué)知識,或是舉一反三,每試一次“牛刀”,都是一次能力的提高。 本書的卡通形象 在本書中,還有兩個卡通形象,將陪伴讀者整個的學(xué)習(xí)過程: 【小博士形象】是始終陪伴在我們身邊的老師;蚴菍W(xué)習(xí)的小貼示,或是需要注意的問題,“小博士”都會侃侃道來。這些都是比較關(guān)鍵的內(nèi)容,請讀者一定悉心體會。 用空格縮進(jìn)無可厚非,但用Tab鍵而不用一連串的空格,是更簡便的做法。Tab(又稱跳格、水平制表)和空格是兩種不同的字符,但對于在程序中起的“空白間隔”作用是相同的。我們可以隨意使用空格或Tab甚至空格和Tab的組合來作為程序中元素間的“空白間隔”。 【大零蛋形象】它是初學(xué)者的代言人,時不時地“冒出來”,或是提出初學(xué)者的常見疑問,或是以簡單通俗的方式表達(dá)對知識的領(lǐng)悟。“零”就是零基礎(chǔ)的意思,“我對C語言一竅不通,將伴隨您一起從零開始學(xué)習(xí)!”。有大零蛋在身邊,零基礎(chǔ)的讀者非但不必畏懼學(xué)習(xí)C語言,反而可以從中獲得樂趣。隨讀者一起,隨著學(xué)習(xí)的深入,“大零蛋”的水平也會逐步提高,由一竅不通的“大零蛋”最終搖身變?yōu)闈M腹經(jīng)綸的“大靈蛋”!零基礎(chǔ)的初學(xué)者們,請跟隨它一起成長,相信讀過本書之后,你也會由零基礎(chǔ)的菜鳥搖身變成一位編程高手的。 我明白了:printf函數(shù)的輸出就是把" "中的內(nèi)容原封不動地“抄”在屏幕上就可以了,但其中若遇到帶%的“警察”則不要照原樣抄,而要用后面的數(shù)據(jù)替換它。注意替換時要按照%所規(guī)定的“手勢”,按相應(yīng)格式替換。 有時候,大零蛋與小博士還會對起話來: 致謝 感謝天津大學(xué)精密儀器與光電子工程學(xué)院的馮遠(yuǎn)明教授和課題組全體成員對本書寫作的大力支持,沒有他們的幫助和支持,不可能寫出這樣一部作品。特別感謝學(xué)院的何峰老師對C語言的知識介紹提供了許多有益的素材,這使很多枯燥乏味的概念講解變得更為生動、有趣。 感謝趙佳為本書繪制或加工制作了全部精美的插圖,這使本書更加妙趣橫生,尤其是她設(shè)計的小博士和大零蛋形象,別有一番特色。 由于筆者水平有限,錯謬之處在所難免,懇請專家和廣大讀者不吝賜教、批評指正。筆者的E-mail是:zhni2011@163.com,QQ號碼是:1307573198。
張寧,南開大學(xué)生物信息學(xué)博士和博士后,現(xiàn)任職于天津大學(xué)精密儀器與光電子工程學(xué)院,主要從事生物醫(yī)學(xué)信息相關(guān)的數(shù)據(jù)分析、數(shù)據(jù)庫、軟件開發(fā)等工作。在C語言一線教學(xué)多年,精通C語言、Visual Basic、Windows編程等,有19年編程和軟件開發(fā)的實踐經(jīng)驗,在國內(nèi)外高水平刊物發(fā)表論文50余篇,多次在各類編程競賽和講課大賽中獲獎。著有《老兵新傳:VisualBasic核心編程及通用模塊開發(fā)》(清華大學(xué)出版社)等。
第1章 從這里愛上編程——程序設(shè)計和C語言概述1
1.1 水面下的冰山——計算機(jī)程序和計算機(jī)語言1 1.2 第一次親密接觸——縱覽C語言3 1.2.1 一窺程序之美——C語言程序的結(jié)構(gòu)3 1.2.2 循序漸進(jìn),快樂學(xué)習(xí)——語句的光和影4 1.2.3 程序里的說明書——注釋6 1.2.4 免費翻譯服務(wù)——編譯和鏈接8 1.3 先其利器——Visual C++ 6.0上機(jī)指導(dǎo)10 1.4 天平稱物問題——進(jìn)制轉(zhuǎn)換15 1.4.1 這些進(jìn)制是哪來的——二進(jìn)制、八進(jìn)制、十六進(jìn)制15 1.4.2 你還應(yīng)知道這幾招——不同進(jìn)制之間的轉(zhuǎn)換15 第2章 色彩斑斕的積木——數(shù)據(jù)類型、運(yùn)算符和表達(dá)式21 2.1 標(biāo)識符、常量和變量21 2.1.1 給我起個名字吧——標(biāo)識符21 2.1.2 有一說一——常量22 2.1.3 程序里的儲物盒——變量23 2.2 追根“數(shù)”源——細(xì)說數(shù)據(jù)類型25 2.2.1 整型數(shù)據(jù)用C語言怎樣說25 2.2.2 實型數(shù)據(jù)用C語言怎樣說28 2.2.3 字符型數(shù)據(jù)用C語言怎樣說32 2.2.4 字符串型常量用C語言怎樣說36 2.3 諸算達(dá)人——運(yùn)算符和表達(dá)式39 2.3.1 再談加減乘除——算術(shù)運(yùn)算39 2.3.2 走,給我進(jìn)去!——賦值45 2.3.3 加加和減減——自增、自減48 2.3.4 神秘的倒數(shù)第一——逗號運(yùn)算50 2.4 位在我心中——位運(yùn)算52 2.4.1 按位與and52 2.4.2 按位或 |52 2.4.3 按位異或 ^53 2.4.4 按位求反 ~54 2.4.5 按位左移 <<54 2.4.6 按位右移 >>54 2.4.7 位運(yùn)算的復(fù)合賦值55 第3章 一戰(zhàn)到底——順序結(jié)構(gòu)56 3.1 整裝待發(fā)——C語言中的語句56 3.2 別急,一個一個來——單個字符的輸出與輸入57 3.2.1 拿好了鑰匙進(jìn)倉庫——輸出與輸入概述57 3.2.2 向屏幕開火——單個字符的輸出58 3.2.3 飯要一口一口地吃——單個字符的輸入59 3.3 更過癮的輸出與輸入——格式輸出與輸入62 3.3.1 我有私人警察——格式輸出函數(shù)printf62 3.3.2 我是快樂的快遞員——格式輸入函數(shù)scanf68 3.4 常用系統(tǒng)數(shù)學(xué)函數(shù)73 3.5 是不是有點專業(yè)級軟件的意思了——順序結(jié)構(gòu)程序舉例74 第4章 程序也能跑捷徑——選擇結(jié)構(gòu)76 4.1 計算機(jī)的判斷力——關(guān)系運(yùn)算和邏輯運(yùn)算76 4.1.1 判斷真假的符號——關(guān)系運(yùn)算符和邏輯運(yùn)算符76 4.1.2 火眼金睛斷真假——關(guān)系表達(dá)式和邏輯表達(dá)式78 4.1.3 挑剔的“嗎+否則”——條件運(yùn)算82 4.2 如果——if語句83 4.2.1 教室停電就不上課了——if語句的基本形式83 4.2.2 一朝天子一朝臣——if語句的完整形式88 4.2.3 如果里的如果——if語句的嵌套94 4.3 多路開關(guān)——switch語句98 4.3.1 司令的錦囊——switch語句的一般形式99 4.3.2 我愛讀小說——switch語句的執(zhí)行過程100 4.4 goto去哪?想去哪就去哪!——goto語句105 第5章 不必親手愚公移山——循環(huán)結(jié)構(gòu)107 5.1 看好了情況再下手——while語句107 5.2 先下手干了再說——do...while語句110 5.3 我勤奮?我勞動?我光榮——for語句112 5.3.1 按勞分配——for語句的基本形式112 5.3.2 勞動者的工作模式——for語句的常見應(yīng)用114 5.3.3 有人接班我偷懶——表達(dá)式的變化119 5.4 循環(huán)里的循環(huán)——循環(huán)的嵌套122 5.5 埋頭干活中的抬頭看路——continue語句和break語句125 5.5.1 來源于生活——continue語句和break語句概述125 5.5.2 下一個上——continue語句127 5.5.3 前方施工請繞行——break語句129 5.6 輕車熟路——程序控制結(jié)構(gòu)小結(jié)和綜合舉例130 第6章 把平房升級為高樓大廈——數(shù)組137 6.1 直線升級——一維數(shù)組137 6.1.1 一維數(shù)組的定義和引用137 6.1.2 一維數(shù)組的初始化(定義時賦初值)144 6.1.3 一維數(shù)組的應(yīng)用147 6.2 找東西和整理東西的藝術(shù)——查找和排序152 6.2.1 這個經(jīng)常有——查找技術(shù)152 6.2.2 混亂之治——排序技術(shù)156 6.3 立體升級——二維數(shù)組163 6.3.1 二維數(shù)組的定義和引用163 6.3.2 二維數(shù)組在內(nèi)存中的存儲形式164 6.3.3 二維數(shù)組的初始化(定義時賦初值)164 6.3.4 二維數(shù)組可被看做是由一維數(shù)組組成的169 第7章 蒙著面干活——函數(shù)171 7.1 從講故事開始——函數(shù)概述171 7.2 該是學(xué)寫多段文章的時候了——函數(shù)定義和調(diào)用173 7.2.1 自己創(chuàng)造函數(shù)——函數(shù)的定義173 7.2.2 把自己寫的“段落”用起來——函數(shù)的調(diào)用175 7.2.3 你歇著,我勞動——函數(shù)調(diào)用的過程177 7.2.4 做好的菜端出來——函數(shù)的返回值179 7.3 喂!聽到了嗎——函數(shù)的聲明185 7.3.1 函數(shù)聲明的形式186 7.3.2 函數(shù)聲明的位置187 7.4 函數(shù)的嵌套調(diào)用和遞歸調(diào)用189 7.4.1 函數(shù)里的函數(shù)——函數(shù)的嵌套調(diào)用189 7.4.2 克隆函數(shù)——函數(shù)的遞歸調(diào)用190 7.5 變量的時空范圍——變量的作用域及存儲類別196 7.5.1 空間范圍——局部變量和全局變量196 7.5.2 時間范圍——變量的存儲類別202 7.5.3 時空統(tǒng)一——局部變量和全局變量的存儲類別206 7.6 給編譯做點兒手腳——預(yù)編譯處理207 7.6.1 潛伏代號——宏定義207 7.6.2 程序的自動復(fù)制粘貼——文件包含211 7.6.3 早知當(dāng)初,何必如此——條件編譯212 第8章 璀璨的星星——指針213 8.1 內(nèi)存里的門牌號——地址和指針的基本概念213 8.2 別拿地址不當(dāng)值——指針變量214 8.2.1 找張字條記地址——定義指針變量215 8.2.2 這可不是說我——指針變量的基類型217 8.2.3 把地址記下來——為指針變量賦值218 8.2.4 指針運(yùn)算倆兄弟——兩個運(yùn)算符220 8.3 原來咱倆是一個朋友圈的——數(shù)組與指針223 8.3.1 下一站到哪了——指針變量的運(yùn)算223 8.3.2 我原來是指針變量——一維數(shù)組的指針227 8.3.3 我是你的上級——二維數(shù)組的指針和行指針232 8.3.4 來自星星的數(shù)組——指針數(shù)組和指針的指針238 8.3.5 指針三家人——指針小結(jié)242 8.4 有了地址也可以找我?guī)兔Π 瘮?shù)與指針244 8.4.1 地址給我,我來幫忙——指針變量做函數(shù)參數(shù)244 8.4.2 吃葡萄不抓葡萄粒,抓住葡萄的把柄——數(shù)組做函數(shù)參數(shù)249 8.4.3 指針?biāo)椒坎恕祷氐刂分档暮瘮?shù)256 8.4.4 函數(shù)遙控器——函數(shù)的指針256 8.5 一兩撥千斤——字符串的指針259 8.5.1 字符串的存儲259 8.5.2 字符串的輸出和輸入263 8.5.3 字符串處理技術(shù)267 8.6 另類運(yùn)行程序——main函數(shù)的參數(shù)286 第9章 我的類型我做主——結(jié)構(gòu)體與共用體289 9.1 多功能收納盒——結(jié)構(gòu)體289 9.1.1 繪制收納盒設(shè)計圖——定義結(jié)構(gòu)體類型289 9.1.2 收納盒制作——使用結(jié)構(gòu)體變量290 9.1.3 一本通訊錄——結(jié)構(gòu)體類型的數(shù)組294 9.1.4 結(jié)構(gòu)體的弓箭手——結(jié)構(gòu)指針變量296 9.1.5 重口味與輕口味——結(jié)構(gòu)體類型數(shù)據(jù)做函數(shù)參數(shù)297 9.1.6 大收納盒里套小收納盒——結(jié)構(gòu)體類型的嵌套301 9.2 公路橋洞——共用體302 9.3 給類型起個“綽號”——類型定義符typedef304 9.4 內(nèi)存空間的批發(fā)和零售——動態(tài)存儲分配306 9.5 電影院里的座次問題——鏈表310 9.5.1 鏈表的建立和遍歷311 9.5.2 鏈表結(jié)點的插入和刪除317 9.5.3 鏈表的高級兄弟——高級鏈表簡介320 第10章 得文件者得天下——文件322 10.1 一針hold住全文件——文件指針322 10.1.1 與文件牽手——文件的打開322 10.1.2 與文件分手——文件的關(guān)閉326 10.1.3 文件操作流程326 10.2 搬運(yùn)流水線——文件的讀寫327 10.2.1 手指和筆尖——文件位置指針327 10.2.2 文本文件的讀寫328 10.2.3 二進(jìn)制文件的讀寫332 10.3 這是手工活兒——文件的隨機(jī)讀寫337 第11章 編程的經(jīng)驗財富——算法與數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)345 11.1 “一招鮮”——算法345 11.1.1 何謂算法345 11.1.2 算法的控制結(jié)構(gòu)346 11.1.3 算法復(fù)雜度346 11.2 數(shù)據(jù)結(jié)構(gòu)概述347 11.2.1 何謂數(shù)據(jù)結(jié)構(gòu)347 11.2.2 數(shù)據(jù)結(jié)構(gòu)的類型348 11.3 早出晚歸的勤快人——棧(堆棧)349 11.3.1 何謂棧(堆棧)349 11.3.2 堆棧的基本運(yùn)算350 11.3.3 堆棧的邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)350 11.3.4 堆棧的應(yīng)用351 11.4 先來后到——隊列352 11.4.1 何謂隊列352 11.4.2 隊列的邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)352 11.4.3 循環(huán)隊列的基本運(yùn)算353 11.5 倒置的樹——樹與二叉樹354 11.5.1 樹和樹的基本概念354 11.5.2 二叉樹的基本概念355 11.5.3 二叉樹的存儲結(jié)構(gòu)356 11.5.4 二叉樹的遍歷356 第12章 程林高手武功秘籍——軟件開發(fā)基礎(chǔ)360 12.1 編程之道——程序設(shè)計方法360 12.1.1 編程Style——程序設(shè)計風(fēng)格360 12.1.2 組裝零件——結(jié)構(gòu)化程序設(shè)計361 12.1.3 這個feel,爽!——面向?qū)ο蟪绦蛟O(shè)計361 12.2 不懂門道看熱鬧,看完咱也吊一吊——軟件工程基礎(chǔ)364 12.2.1 何謂軟件364 12.2.2 軟件生命周期365 12.2.3 需求分析及其方法366 12.2.4 軟件設(shè)計及其方法367 12.2.5 我是來找茬的——軟件測試369 12.2.6 誰來改正——程序的調(diào)試371 12.3 信息時代是怎樣煉成的——數(shù)據(jù)庫和數(shù)據(jù)庫設(shè)計初步371 12.3.1 關(guān)系型數(shù)據(jù)庫及相關(guān)概念372 12.3.2 關(guān)系代數(shù)374 12.3.3 數(shù)據(jù)庫系統(tǒng)378 12.3.4 數(shù)據(jù)庫設(shè)計者眼里的世界——E-R模型380 12.3.5 數(shù)據(jù)庫設(shè)計381 附錄一 常用字符ASCII碼對照表383 附錄二 C語言中的關(guān)鍵字384 附錄三 C語言運(yùn)算符的優(yōu)先級和結(jié)合性385 索引386 參考文獻(xiàn) 391
第8章 璀璨的星星——指針
當(dāng)你從網(wǎng)頁復(fù)制一段文本,再到你想要的地方隨意粘貼的時候;當(dāng)你在Excel表格中插入幾行數(shù)據(jù)的時候;當(dāng)你不知怎的突然遭到被彈出“xx程序錯誤,單擊確定立即關(guān)閉”的時候;當(dāng)你用游戲修改軟件鎖定生命值,讓游戲中的角色成為“金剛不死之軀”的時候……知道嗎,這些都與指針息息相關(guān)! 指針可是程序設(shè)計的一個強(qiáng)大工具,使用指針,不僅可以表示很多重要的數(shù)據(jù)結(jié)構(gòu)、高效地使用數(shù)組、方便地處理字符串、另類地調(diào)用函數(shù)……而且可以直接訪問內(nèi)存,賦予我們廣大的自由度和“至高無上”的權(quán)利!編程高手們常說“無指針,不自由”,就是這個道理。因此指針也是學(xué)習(xí)C語言最重要的一環(huán),可以說如果不會使用指針編程,就不是真正掌握了C語言。 有人說指針也是學(xué)習(xí)C語言最困難的一部分,但本書持相反意見。只要學(xué)習(xí)方法得當(dāng),實際上指針也并沒有聽起來那么難學(xué)!請讀者不要畏懼,在本章我們會教給你很多技巧和方法,一步步帶領(lǐng)大家攻克指針的壁壘。讓我們現(xiàn)在就出發(fā),一起體會這一次精彩、充滿刺激挑戰(zhàn)和富有樂趣的指針之旅!
你還可能感興趣
我要評論
|