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