到目前為止,我已經(jīng)讀到了《C與指針》第十六章,總共十八章,接下來(lái)的章節(jié)內(nèi)容分別是標(biāo)準(zhǔn)函數(shù)庫(kù)、數(shù)據(jù)結(jié)構(gòu)、以及C語(yǔ)言的運(yùn)行環(huán)境,還沒(méi)有完全做完練習(xí)就寫(xiě)這篇讀后感原因有二,第一個(gè)當(dāng)然是最主要的,這本書(shū)的前面十五章已經(jīng)差不多完全概括這門語(yǔ)言的精髓了,第二個(gè)原因就是我很懶,懶得做下面的習(xí)題,這些習(xí)題的答案在網(wǎng)上都找得到,不過(guò)中文的解釋倒是不多,所以我才一邊做練習(xí)一邊試著翻譯答案,不過(guò)英語(yǔ)水平確實(shí)不太高,翻譯的也不太好,大概意思吧。
接下來(lái)說(shuō)正題,這本書(shū)--《C與指針》,這本書(shū)并不是很適合初學(xué)者,尤其是一上來(lái)就學(xué)習(xí)C語(yǔ)言的人,在此之前沒(méi)有任何基礎(chǔ),因?yàn)檫@本書(shū)的難度系數(shù)還是偏高的,說(shuō)到書(shū)的推薦,關(guān)于C語(yǔ)言的書(shū),眾說(shuō)紛紜,有的說(shuō)什么譚浩強(qiáng)的書(shū)啊,有的說(shuō)讀C語(yǔ)言之父寫(xiě)的Program in C啊之類的,那本譚浩強(qiáng)的我倒是沒(méi)看過(guò),不過(guò)聽(tīng)名字就感覺(jué)不咋地(不是我有意詆毀,只是看目錄就覺(jué)得不想學(xué)習(xí)),那本Program in c我倒是有,不過(guò)沒(méi)堅(jiān)持讀完,啟蒙書(shū)是我們學(xué)校發(fā)的那本教材,是一本 超爛的教材,不過(guò)要感謝我們C語(yǔ)言老師,他讓我們做了很多習(xí)題,之后我也算是稀里糊涂的入了門,說(shuō)真的,要快速入門的最好方法其實(shí)跟書(shū)的好壞關(guān)系并不大,你多抄幾個(gè)練習(xí),然后自己默寫(xiě)幾遍,反復(fù)做那幾個(gè)典型的題熟悉語(yǔ)句就好了,比如說(shuō)計(jì)算閏年啊,是不是素?cái)?shù)啊,兔子生寶寶啊之類的,關(guān)鍵是熟悉C語(yǔ)言的語(yǔ)法和對(duì)編程形成一種感覺(jué),我要解決一個(gè)問(wèn)題,如何用編程實(shí)現(xiàn)呢?差不多熟悉這門語(yǔ)言之后再來(lái)談?wù)剷?shū)的好壞。講偏了,這本書(shū)適合什么人呢?我覺(jué)得吧,適合我,哈哈,開(kāi)個(gè)玩笑,這本書(shū)很久之前我就買了,也讀了,不過(guò)讀到第八章函數(shù)之后我就沒(méi)讀了,因?yàn)橛行┳x不下去了,那個(gè)時(shí)候我也已經(jīng)入門了,不過(guò)這本書(shū)還是有許多內(nèi)容讀的不是很懂,而現(xiàn)在的我讀這本書(shū)時(shí)的感覺(jué)就是,這本書(shū)真的是寶貝,寫(xiě)得太好了,這是我讀過(guò)的最好的C語(yǔ)言的書(shū),這讓我明白了好多普通C語(yǔ)言書(shū)里沒(méi)有的東西,也讓我了解到C++是繼承于C語(yǔ)言的,它的每一點(diǎn)在C語(yǔ)言中都可以找到蹤跡,另外為什么說(shuō)C語(yǔ)言能夠讓你了解許多硬件知識(shí),都有深刻的體會(huì),那么,適合什么人呢?決定你想要看這本書(shū)的內(nèi)容,如果你只打算像別的書(shū)本一樣,看他講函數(shù),數(shù)組,普通指針,各種語(yǔ)句,表達(dá)式,那么你入門C語(yǔ)言之后就能看了,畢竟如果沒(méi)有犯過(guò)錯(cuò)誤就不知道警告的含義,這本書(shū)中警告的內(nèi)容都是相當(dāng)值得注意的,可以說(shuō)不管是什么人,即便是很熟練的程序員也可能會(huì)犯這種錯(cuò)誤,如果你準(zhǔn)備深入了解這門語(yǔ)言,那么你應(yīng)該至少了解匯編語(yǔ)言,這本書(shū)有部分內(nèi)容使用了匯編語(yǔ)言進(jìn)行解釋和比較,另外十六章里面的setjmp這種類goto語(yǔ)句的內(nèi)容就是繼承自匯編的,在匯編里我們差不多經(jīng)常用jump這種指令來(lái)完成我們的程序,你會(huì)在C語(yǔ)言中發(fā)現(xiàn)它繼承自匯編的內(nèi)容,另外一個(gè)建議就是,最好了解使用一下linux系統(tǒng),在window的VS下面編程不僅僅是說(shuō)你學(xué)習(xí)不到整個(gè)程序完成的過(guò)程,還有就是會(huì)使你在使用命令行上成為一個(gè)白癡,而不會(huì)使用命令行你會(huì)失去很多樂(lè)趣的,在本書(shū)的第十五章里面,就涉及到編寫(xiě)一些命令行參數(shù)以及怎樣實(shí)現(xiàn)一些基本的命令,看完這部分內(nèi)容,你對(duì)命令行也不會(huì)這么陌生了,你可以修改你的linux系統(tǒng)的命令,可以查看源碼,也可以增加一些命令,總之這種感覺(jué)應(yīng)該相當(dāng)不錯(cuò),最后最基本的一點(diǎn),你還是得懂一些計(jì)算機(jī)原理吧,比如內(nèi)存啊,指令的執(zhí)行啊,不過(guò)這些內(nèi)容在學(xué)習(xí)匯編的時(shí)候是可以學(xué)到的,這里對(duì)匯編語(yǔ)言推薦王爽老師的書(shū),linux的話自己去琢磨,下個(gè)linux系統(tǒng)安裝也就十幾分鐘的樣子,網(wǎng)上教程相當(dāng)多。
至于這本書(shū)最后一部分,甚至還給出了C語(yǔ)言和匯編語(yǔ)言的接口,這意味著你可以自己把硬件部分和軟件結(jié)合一下,在匯編里不是有關(guān)于鍵盤設(shè)備的讀取嗎,像SDL之類的游戲引擎的鍵盤控制讀取這些你就能想到是怎么實(shí)現(xiàn)的了,想想還是覺(jué)得很有意思呢,對(duì)于十七章的數(shù)據(jù)結(jié)構(gòu),將在接下來(lái)的《數(shù)據(jù)結(jié)構(gòu)與算法分析-C語(yǔ)言描述》這本書(shū)的練習(xí)和閱讀中細(xì)講,認(rèn)真讀完C與指針,你將會(huì)體驗(yàn)到C語(yǔ)言真正的魅力。