注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)C/C++及其相關(guān)品悟C:拋棄C程序設(shè)計(jì)中的謬誤與惡習(xí)

品悟C:拋棄C程序設(shè)計(jì)中的謬誤與惡習(xí)

品悟C:拋棄C程序設(shè)計(jì)中的謬誤與惡習(xí)

定 價(jià):¥69.00

作 者: 薛非 著
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: VC++

ISBN: 9787302296263 出版時(shí)間: 2012-10-01 包裝: 平裝
開本: 16開 頁數(shù): 512 字?jǐn)?shù):  

內(nèi)容簡介

  《品悟C:拋棄C程序設(shè)計(jì)中的謬誤與惡習(xí)》是迄今為止國內(nèi)僅有的一部全面且集中地討論C程序設(shè)計(jì)中常見錯(cuò)誤的書籍。其主旨在于幫助讀者從錯(cuò)誤中更準(zhǔn)確地理解C語言,并在實(shí)踐中更好地運(yùn)用C語言。 全書分為上下兩部:上部“形而下學(xué)”討論C代碼中常見的錯(cuò)誤和編程惡習(xí);下部“形而上學(xué)”討論的是對C語言本身認(rèn)識方面的常見誤區(qū)。這些問題特別具有普遍性,很多錯(cuò)誤不僅僅存在于初學(xué)者之中,即使是職業(yè)程序員多半也會在本書中找到自己的錯(cuò)誤。因此,對于任何想糾正自己對C語言的錯(cuò)誤認(rèn)識以及想不斷提高C語言水平的讀者來說,本書都提供了一種獨(dú)到且重要的視角,是一本不容錯(cuò)過的、具有重要參考價(jià)值的技術(shù)資料。 本書并非那種長篇大論環(huán)環(huán)相扣的書籍,它的各個(gè)主題獨(dú)立成篇,使人閱讀起來輕松愉快。讀這本書并不需要正襟危坐在書房里,它可以隨時(shí)隨地地拿過來翻閱。 《品悟C:拋棄C程序設(shè)計(jì)中的謬誤與惡習(xí)》可作為各高校C語言或相關(guān)課程的教學(xué)參考書,也適合那些具有一定經(jīng)驗(yàn)的C語言程序員閱讀使用。

作者簡介

  薛非貌不出眾,所以照片還是免了吧。編輯非要也不給,有碼無碼都不行。沒有什么豐功偉績,所以也不敢自吹自擂。不過我堅(jiān)信,書籍本身是作者最好的名片,作者的形象決定于讀者的閱讀感受。所以,這里的空白還是留給讀者的想象吧。

圖書目錄

上部 形而下學(xué)--代碼錯(cuò)誤及陋習(xí)
第1章 低級錯(cuò)誤
問題1 C啊,多少C++假汝之名而行--C、C++不分
問題2 環(huán)節(jié)缺失--關(guān)于C程序開發(fā)過程
問題3 錯(cuò)誤的“標(biāo)點(diǎn)”--混用中英文字符
問題4 錯(cuò)誤的“單詞”
問題5 “合并單詞”產(chǎn)生的問題
問題6 形形色色的“分號”誤用
問題7 “一仆二主”--兩個(gè)main()函數(shù)
問題8 忘記“&”
問題9 who's who
問題10 同形異質(zhì)--為符號常量賦值
問題11 詞不達(dá)意
問題12 使用switch語句的常見錯(cuò)誤
第2章 初級錯(cuò)誤
問題1 隨手寫出的大數(shù)
問題2 關(guān)于數(shù)據(jù)類型的潛規(guī)則
問題3 使用垃圾值
問題4 對數(shù)組的誤用與誤解
問題5 好心辦壞事--修改代碼引發(fā)的錯(cuò)誤
問題6 “右移運(yùn)算等價(jià)于除法運(yùn)算”
問題7 “中國人民很行”--C語言中的錯(cuò)別字
問題8 學(xué)會數(shù)數(shù)--循環(huán)次數(shù)錯(cuò)誤
問題9 忽視函數(shù)原型
問題10 張冠李戴--錯(cuò)誤的格式轉(zhuǎn)換
問題11 只進(jìn)不出--缺少輸出
問題12 鳩占鵲巢--數(shù)組越界
第3章 邏輯錯(cuò)誤
問題1 喧賓奪主--換行問題
問題2 結(jié)構(gòu)體鏈表的一個(gè)例題--輸出錯(cuò)誤
問題3 一些幼稚的寫法
問題4 c=getchar()!=EOF--優(yōu)先級錯(cuò)誤
問題5 判斷三個(gè)整數(shù)相等--“==”運(yùn)算符的誤用
問題6 懸掛else問題--怎樣寫出正確的if語句
問題7 浮點(diǎn)循環(huán)變量
問題8 不顧常識
問題9 自然語言的陷阱
問題10 c==' ' || '\n' || '\t'
問題11 亂做習(xí)題你傷不起啊
問題12 誤改循環(huán)變量
第4章 似是而非
問題1 void main()
問題2 生硬的嫁接,滑稽的實(shí)參
問題3 輸出之誤--輸出數(shù)組應(yīng)注意的問題
問題4 多此一舉
問題5 笨拙的for語句
問題6 只用printf()函數(shù)輸出
問題7 容易招致編譯器誤解的代碼
問題8 使用“//”注釋注意事項(xiàng)
問題9 使用野指針
問題10 用驢子拖寶馬--濫用結(jié)構(gòu)體
問題11 似是而非的k=sqrt(n)
問題12 scanf(“”%s“”,&str)
問題13 已知兩邊長求三角形面積--不完全函數(shù)參數(shù)
問題14 對“c”轉(zhuǎn)換說明符的誤解
問題15 多余的計(jì)算
問題16 到處忙活與一勞永逸--函數(shù)類型聲明位置問題
問題17 半身不遂和粗中有細(xì)
問題18 忽視前提
問題19 char text[3][80]不是一篇文章,也并非3行文字
問題20 不安全的gets()函數(shù)
問題21 文件名殘缺
問題22 exit(0)
問題23 舍近求遠(yuǎn)
問題24 重復(fù)無效的代碼
問題25 拙劣的外部變量
第5章 畫蛇添足
問題1 KISS
問題2 為賦新詞強(qiáng)說愁
問題3 啰唆重復(fù)
問題4 表達(dá)式是什么
問題5 不識指針
問題6 脫褲子放屁
問題7 怎樣利用scanf()函數(shù)自虐
問題8 自尋煩惱的scanf()函數(shù)調(diào)用方式
問題9 輸入指定范圍的整數(shù)--Basic風(fēng)格寫法和C風(fēng)格寫法
問題10 “豆?jié){買兩碗,喝一碗,倒一碗”--多余的數(shù)組元素
問題11 篩法“四不像”
問題12 不徹底的思考
問題13 代碼寫得要“拽”(DRY)
問題14 作繭自縛的“%3d”
問題15 大腹便便--臃腫與重復(fù)
問題16 舍簡就繁
問題17 程序的劣化與優(yōu)化
問題18 濫用變量綜合癥
問題19 free空指針
第6章 疑難雜癥
問題1 混亂是怎樣煉成的
問題2 無知亂吃藥--strcpy()函數(shù)的誤用
問題3 邊界測試--讓BUG現(xiàn)形
問題4 內(nèi)褲外穿--錯(cuò)位及不倫不類
問題5 flag標(biāo)志:代碼餿了(一)
問題6 flag標(biāo)志:代碼餿了(二)
問題7 flag標(biāo)志:代碼餿了(三)
問題8 雞窩里飛出偽鳳凰
問題9 不顧常識
問題10 不易察覺的BUG
問題11 含糊之過、多做之過及亂做之過
問題12 怎樣調(diào)戲程序
問題13 糟蹋好題--魔方陣問題
第7章 風(fēng)格問題
問題1 如何進(jìn)行數(shù)組初始化
問題2 括號不配對錯(cuò)誤及如何免疫
問題3 不良代碼編輯風(fēng)格引起的錯(cuò)誤--怎樣寫控制語句
問題4 將main()函數(shù)進(jìn)行到底
問題5 赤裸的scanf()
問題6 c + 32的問題
問題7 怎樣整理房間
問題8 貪小便宜--省略函數(shù)類型聲明等問題
問題9 常數(shù)Magic Number
問題10 搏二兔

下 部 形而上學(xué)--概念錯(cuò)誤及誤區(qū)
第8章 概念的缺失
問題1 C語言的歷史及C標(biāo)準(zhǔn)
問題2 只知變量不知對象
問題3 C語言中Byte的含義
問題4 “不知所云”的無定義行為(undefined behavior)
問題5 “可以清心也”應(yīng)如何解讀--不確定行為(Unspecified behavior)
問題6 實(shí)現(xiàn)(Implemantation)
問題7 “編譯器自己做主”--實(shí)現(xiàn)定義的行為(implementation-defined behavior)
問題8 整數(shù)提升(Integer promotion)
問題9 副效應(yīng)(side effects)
問題10 “左值就是可以出現(xiàn)在賦值運(yùn)算符的左側(cè)”
第9章 基本詞法
問題1 字符集問題
問題2 “α,β,δ,ε,Ⅰ,Ⅱ,Ⅲ,Ⅳ等不是C語言的合法字符”
問題3 “各種字符集的基本集都包括了127個(gè)字符”
問題4 C源程序的組成--“單詞”視角
問題5 “a”、'a'與a辨析
問題6 “C語言關(guān)鍵字都是小寫的”
問題7 “C語言允許一行內(nèi)寫多個(gè)語句”
問題8 “標(biāo)識符由字母、下劃線和數(shù)字組成”
問題9 標(biāo)識符的長度限制
問題10 “括號、賦值、逗號都是運(yùn)算符”
第10章 數(shù)據(jù)類型及類型轉(zhuǎn)換
問題1 “類型就是對數(shù)據(jù)存儲單元的安排”
問題2 1.%3之惑
問題3 “int為2個(gè)字節(jié)或4個(gè)字節(jié)”
問題4 int類型的范圍問題
問題5 混亂不堪的“整型”
問題6 “·345是整型常量”
問題7 “字符數(shù)據(jù)以ASCII碼存儲”
問題8 “char類型就是signed char類型”
問題9 通過程序測定char類型的性質(zhì)
問題10 “C用1個(gè)字節(jié)(8位)存儲一個(gè)字符”
問題11  “i='A'是字符型數(shù)據(jù)賦給整型變量”
問題12 “字符常量只能是一個(gè)字符”
問題13 “從常量的表示形式可以判斷其類型”
問題14 1、'1'與“”1“”
問題15 “變量值在存儲單元中都是以補(bǔ)碼形式存儲的”
問題16 “不應(yīng)向無符號整型變量賦予一個(gè)負(fù)值”
問題17 3.0乘以4.2怎么就變成了12.59999
問題18 “實(shí)型變量”剖析
問題19 使用float招來的警告及“因噎廢食”的對策
問題20 123f--怎樣寫float類型的常量
問題21 “實(shí)型常量有兩種表示形式”
問題22 “浮點(diǎn)數(shù)類型包括float、double和long double”
問題23 “實(shí)數(shù)就是浮點(diǎn)數(shù)”
問題24 “編譯系統(tǒng)為每一個(gè)float型變量分配4個(gè)字節(jié)”
問題25 “浮點(diǎn)型”、“雙精度浮點(diǎn)型”和“實(shí)型”
問題26 “Turbo C對long double 型分配16個(gè)字節(jié)”
問題27 “必然以規(guī)范化的指數(shù)形式輸出”
問題28 “浮點(diǎn)型數(shù)據(jù)是用來表示具有小數(shù)點(diǎn)的實(shí)數(shù)的”
問題29 對類型轉(zhuǎn)換運(yùn)算的誤解
問題30 “整型量與字符型數(shù)據(jù)以及邏輯型數(shù)據(jù)可以通用”
問題31  “C語言把所有的實(shí)數(shù)都作為雙精度數(shù)處理”
問題32 “所有float型數(shù)據(jù)都先轉(zhuǎn)換為double型”
問題33 “int型與float或double型數(shù)據(jù)進(jìn)行運(yùn)算,結(jié)果是double型”
問題34 關(guān)于char類型數(shù)據(jù)的運(yùn)算規(guī)則
問題35 對表達(dá)式“10+'a'+i*f-d/3”的分析
問題36 “字符數(shù)據(jù)既可以字符形式輸出,也可以整數(shù)形式輸出”
問題37 3 · 1∶2.
問題38 “運(yùn)算符兩側(cè)的數(shù)據(jù)類型不同,先自動(dòng)進(jìn)行型轉(zhuǎn)換”
第11章 運(yùn)算和表達(dá)式(Expression)
問題1 關(guān)于“整型常量”
問題2 “變量名是以一個(gè)名字代表一個(gè)存儲地址”
問題3 “缺省情況下所有變量都是auto 的”
問題4 “不能對一個(gè)類型賦值、存取或運(yùn)算”
問題5 “變量必須先定義、后使用”
問題6 “常量是沒有名字的不變量”
問題7 “標(biāo)識符用來標(biāo)識一個(gè)對象”
問題8 啥叫“中間變量”
問題9 “先乘除后加減”--“優(yōu)先級高先運(yùn)算”
問題10 “賦值截?cái)?rdquo;
問題11 對(a=b)>0 的誤讀
問題12 “'.'運(yùn)算符優(yōu)先級高于后綴'++'運(yùn)算符”
問題13 “'結(jié)合性'是C語言的特點(diǎn)之一”
問題14 “'左結(jié)合性',即運(yùn)算對象先與左面的運(yùn)算符相結(jié)合”
問題15 “算術(shù)表達(dá)式”和“算術(shù)運(yùn)算符”:兩個(gè)臆造的偽概念
問題16 關(guān)于“算術(shù)表達(dá)式”、“優(yōu)先級”和“結(jié)合性”的胡扯
問題17 “C語言共有34種運(yùn)算符”
問題18 “兩個(gè)實(shí)數(shù)相除的結(jié)果是雙精度實(shí)數(shù)”
問題19 整數(shù)除法的舍入方向問題
問題20 “++運(yùn)算的作用是使變量的值加1”
問題21 為a+=a-=a*a預(yù)擬的悼詞
問題22 &&的運(yùn)算規(guī)則
問題23 對“5>3&&8”稱為指向運(yùn)算符
問題3 “只能對最低級的成員進(jìn)行賦值或存取以及運(yùn)算”
問題4 63、64還是68?--談?wù)刟lignment
問題5 結(jié)構(gòu)體的尺寸問題
問題6 空結(jié)構(gòu)體的尺寸問題
問題7 “結(jié)構(gòu)體變量的地址主要用作函數(shù)參數(shù)”
問題8 “共用體變量所占內(nèi)存長度等于最長成員的長度”
問題9 “不能引用共用體變量”
問題10 “不能對共用體變量名賦值”
問題11  “枚舉變量的值限定在定義時(shí)規(guī)定的幾個(gè)枚舉元素范圍內(nèi)”
問題12 “'位運(yùn)算'是C語言區(qū)別于其他高級語言的一個(gè)重要特點(diǎn)”
問題13 “參加位運(yùn)算的對象只能是整型或字符型的數(shù)據(jù)”
問題14 “'<<'用來將一個(gè)數(shù)的各二進(jìn)制位全部左移若干位”
問題15 不同長度的數(shù)據(jù)進(jìn)行位運(yùn)算
問題16 用memcmp()函數(shù)比較兩個(gè)結(jié)構(gòu)體
第17章 標(biāo)準(zhǔn)庫
問題1 “%c轉(zhuǎn)換說明符用于輸入單個(gè)字符”引發(fā)的潛在BUG
問題2 “對無符號整型數(shù)據(jù)用%u輸出”
問題3 “double類型應(yīng)該用'%lf'輸出”
問題4 關(guān)于%g格式的錯(cuò)誤認(rèn)識
問題5 關(guān)于%o格式的錯(cuò)誤認(rèn)識
問題6 “gets()函數(shù)是fgets()函數(shù)用于stdin的特例”
問題7 “用puts函數(shù)輸出的字符串中可以包含轉(zhuǎn)義字符”
問題8 “文件結(jié)束標(biāo)志EOF(即-1)”
問題9 “fseek(fp、100L、0)”
問題10 打開文件時(shí)的兩種錯(cuò)誤
問題11 “用”“a”“方式打開文件應(yīng)保證文件事先存在”
問題12 “在程序中可以直接用FILE類型名定義變量”
問題13 “stdin是指向標(biāo)準(zhǔn)輸入流的指針變量”
問題14 關(guān)于feof()函數(shù)的錯(cuò)誤
問題15 “度日如年”的故事及“feof()函數(shù)”的故事
問題16 關(guān)于fflush()函數(shù)的錯(cuò)誤
問題17 盲目前行--忽視malloc()函數(shù)返回值
問題18 管殺不管埋--缺少free()函數(shù)
問題19 怎樣建立鏈表并同時(shí)造成內(nèi)存泄漏
問題20 qsort()函數(shù)是快速排序
問題21 關(guān)于calloc()函數(shù)
問題22 關(guān)于free()函數(shù)
問題23 關(guān)于realloc()函數(shù)
問題24 為什么不可以static char*p=malloc(10);
問題25 abs()是數(shù)學(xué)函數(shù)
第18章 預(yù)處理
問題1 “預(yù)處理功能是C語言特有的”
問題2 主動(dòng)引進(jìn)BUG
問題3 “#define是用一個(gè)指定的標(biāo)識符來代表字符串”
問題4 “預(yù)處理器把程序中的注釋全部刪除”
問題5 “所有的PI都代表3.1416”
問題6 #define預(yù)處理命令的位置問題
問題7 能否用痰盂盛飯--談在頭文件中定義外部變量
問題8 預(yù)處理次序錯(cuò)誤
問題9 缺少#include
問題10 包含源文件--是奇技淫巧還是飲鴆止渴
問題11 使用函數(shù)式宏的禁忌
問題12 不合格的宏
問題13 “宏實(shí)參從左到右進(jìn)行置換”
問題14 條件編譯與if語句
第19章 關(guān)于C99
問題1 亡羊補(bǔ)牢還是越錯(cuò)越遠(yuǎn)--“C99允許在函數(shù)中的復(fù)合語句
中定義變量”
問題2 C99增加了哪些數(shù)據(jù)類型
問題3 “C99標(biāo)準(zhǔn)不支持一行內(nèi)寫多個(gè)語句”
問題4 “C99把字符型數(shù)據(jù)作為整數(shù)類型的一種”
問題5 “C99要求main函數(shù)一律指定為int型”
問題6 “C99允許使用常變量”
問題7 “C99允許使用多字節(jié)字符”
問題8 “C99允許使用基類型為void的指針類型”
問題9 “C99增加了C++中的功能”
問題10 “C99允許同類型的共用體變量互相賦值”
問題11 能否用Visual C++ 6.0學(xué)習(xí)C99
第20章 雜七雜八
問題1 “系統(tǒng)描述語言”與“系統(tǒng)編程語言”
問題2 關(guān)于計(jì)算機(jī)指令長度
問題3 同一律
問題4 為什么不能用匯編解釋C
問題5 “文件中的物理順序”
問題6 “C語言源程序的擴(kuò)展名為.c”
問題7 缺乏測試意識
問題8 為Wirth正名
問題9 “bohra”是誰
問題10 “83 ANSI C”和“87 ANSI C”
問題11 關(guān)于ISO
問題12 關(guān)于勒讓德多項(xiàng)式
參考文獻(xiàn)

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號