万本电子书0元读

万本电子书0元读

顶部广告

品悟C:抛弃C程序设计中的谬误与恶习电子书

貌不出众,所以照片还是免了吧,编辑非要电不给,有码无码都不行。

售       价:¥

纸质售价:¥54.50购买纸书

6人正在读 | 0人评论 6.2

作       者:薛非

出  版  社:清华大学出版社

出版时间:2012-10-01

字       数:1855

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(1条)
  • 读书简介
  • 目录
  • 累计评论(1条)
这是迄今为止国内仅有的一部全面且集中地讨论C程序设计中常见错误的书籍。其主旨在于帮助读者从错误中更准确地理解C语言,并在实践中更好地运用C语言。 全书分为上下两部:上部“形而下学”讨论C代码中常见的错误和编程恶习;下部“形而上学”讨论的是对C语言本身认识方面的常见误区。这些问题特别具有普遍性,很多错误不仅仅存在于初学者之中,即使是职业程序员多半也会在本书中找到自己的错误。因此,对于任何想纠正自己对C语言的错误认识以及想不断提高C语言水平的读者来说,本书都提供了一种独到且重要的视角,是一本不容错过的、具有重要参考价值的技术资料。 本书并非那种长篇大论环环相扣的书籍,它的各个主题独立成篇,使人阅读起来轻松愉快。读这本书并不需要正襟危坐在书房里,它可以随时随地地拿过来翻阅。 本书可作为各高校C语言或相关课程的教学参考书,也适合那些具有一定经验的C语言程序员阅读使用。<br/>【推荐语】<br/>咬文嚼字,但用心良苦。<br/>【作者】<br/>薛非 貌不出众,所以照片还是免了吧。编辑非要也不给,有码无码都不行。 没有什么丰功伟绩,所以也不敢自吹自擂。不过我坚信,书籍本身是作者好的名片,作者的形象决定于读者的阅读感受。 所以,这里的空白还是留给读者的想象吧。<br/>
目录展开

前折页

内容简介

编者序——敢于向权威挑战

前言

目录页

上部 形而下学——代码错误及陋习

第1章 低级错误

问题1 C啊,多少C++假汝之名而行——C、C++不分

问题2 环节缺失——关于C程序开发过程

问题3 错误的“标点”——混用中英文字符

问题4 错误的“单词”

问题5 “合并单词”产生的问题

问题6 形形色色的“分号”误用

问题7 “一仆二主”——两个main()函数

第2章 初级错误

问题1 随手写出的大数

问题2 关于数据类型的潜规则

问题3 使用垃圾值

问题4 对数组的误用与误解

问题5 好心办坏事——修改代码引发的错误

问题6 “右移运算等价于除法运算”

问题7 “中国人民很行”——C语言中的错别字

问题8 学会数数——循环次数错误

问题9 忽视函数原型

问题10 张冠李戴——错误的格式转换

问题11 只进不出——缺少输出

问题12 鸠占鹊巢——数组越界

第3章 逻辑错误

问题1 喧宾夺主——换行问题

问题2 结构体链表的一个例题——输出错误

问题3 一些幼稚的写法

问题5 判断三个整数相等——“==”运算符的误用

问题6 悬挂else问题——怎样写出正确的if语句

问题7 浮点循环变量

问题8 不顾常识

问题9 自然语言的陷阱

问题10 c==''||'\n'||'\t'

问题11 乱做习题你伤不起啊

问题12 误改循环变量

第4章 似是而非

问题1 voidmain()

问题3 输出之误——输出数组应注意的问题

问题4 多此一举

问题5 笨拙的for语句

问题6 只用printf()函数输出

问题8 使用“//”注释注意事项

问题9 使用野指针

问题10 用驴子拖宝马——滥用结构体

问题11 似是而非的k=sqrt(n)

第5章 画蛇添足

问题1 KISS

问题2 为赋新词强说愁

问题3 啰唆重复

问题4 表达式是什么

问题5 不识指针

问题6 脱裤子放屁

问题7 怎样利用scanf()函数自虐

问题8 自寻烦恼的scanf()函数调用方式

问题9 输入指定范围的整数——Basic风格写法和C风格写法

问题10 “豆浆买两碗,喝一碗,倒一碗”——多余的数组元素

问题11 筛法“四不像”

问题12 不彻底的思考

问题13 代码写得要“拽”(DRY)

问题14 作茧自缚的“%3d”

问题15 大腹便便——臃肿与重复

问题16 舍简就繁

问题17 程序的劣化与优化

问题18 滥用变量综合症

问题19 free空指针

第6章 疑难杂症

问题1 混乱是怎样炼成的

问题2 无知乱吃药——strcpy()函数的误用

问题3 边界测试——让BUG现形

问题4 内裤外穿——错位及不伦不类

问题5 flag标志:代码馊了(一)

问题6 flag标志:代码馊了(二)

问题7 flag标志:代码馊了(三)

问题8 鸡窝里飞出伪凤凰

问题9 不顾常识

问题10 不易察觉的BUG

问题11 含糊之过、多做之过及乱做之过

问题12 怎样调戏程序

问题13 糟蹋好题——魔方阵问题

第7章 风格问题

问题1 如何进行数组初始化

问题2 括号不配对错误及如何免疫

问题3 不良代码编辑风格引起的错误——怎样写控制语句

问题4 将main()函数进行到底

问题5 赤裸的scanf()

问题7 怎样整理房间

问题8 贪小便宜——省略函数类型声明等问题

问题9 常数MagicNumber

问题10 搏二兔

下部 形而上学——概念错误及误区

第8章 概念的缺失

问题1 C语言的历史及C标准

问题3 C语言中Byte的含义

问题4 “不知所云”的无定义行为(undefined behavior)

问题5 “可以清心也”应如何解读——不确定行为(Unspecified behavior)

问题6 实现(Implemantation)

问题9 副效应(side effects)

问题10 “左值就是可以出现在赋值运算符的左侧”

第9章 基本词法

问题1 字符集问题

问题2 “α,β,δ,ε,Ⅰ,Ⅱ,Ⅲ,Ⅳ等不是C语言的合法字符”

问题4 C源程序的组成——“单词”视角

问题5 “a”、‘a’与a辨析

问题6 “C语言关键字都是小写的”

问题8 “标识符由字母、下划线和数字组成”

问题10 “括号、赋值、逗号都是运算符”

第10章 数据类型及类型转换

问题1 “类型就是对数据存储单元的安排”

问题3 “int为2个字节或4个字节”

问题5 混乱不堪的“整型”

问题7 “字符数据以ASCII码存储”

问题9 通过程序测定char类型的性质

问题11 “i='A'是字符型数据赋给整型变量”

第11章 运算和表达式(Expression)

问题1 关于“整型常量”

问题2 “变量名是以一个名字代表一个存储地址”

问题3 “缺省情况下所有变量都是auto的”

问题6 “常量是没有名字的不变量”

问题8 啥叫“中间变量”

问题11 对(a=b)>0的误读

问题14 “‘左结合性’,即运算对象先与左面的运算符相结合”

问题16 关于“算术表达式”、“优先级”和“结合性”的胡扯

问题17 “C语言共有34种运算符”

问题18 “两个实数相除的结果是双精度实数”

问题19 整数除法的舍入方向问题

第12章 声明和语句

问题1 “全局变量”

问题3 声明点(Declaration point)的问题

问题4 指向静态整型变量的指针

问题6 “输出语句”及“赋值语句”

问题8 “C语言规定语句末尾必须有分号”

问题9 switch语句的一般形式

问题10 switch语句中的表达式类型问题

问题11 “while语句的范围只到while后面第一个分号处”

问题13 “语句的作用是向计算机系统发出操作指令,要求执行相应的操作”

第13章 函数

问题1 “实际参数可以是常量、变量或表达式”

问题3 “虚拟参数”和“虚实结合”

问题5 函数的指针是起始地址

问题7 “void意为函数无类型”

问题9 “使用函数原型作声明是C的一个重要特点”

问题11 “库函数是编译系统事先定义好的”

问题14 过时的函数定义

问题15 “不能调用main函数”

问题17 五花八门的main()函数

问题18 “函数名代表函数的入口地址”

问题19 “函数声明”、“函数原型”与“函数定义”辨析

第14章 指针

问题1 指针的种类问题

问题3 “指针就是地址”

第15章 数组和字符串

问题1 定义一维数组的一般形式

问题3 “字符串是存放在字符型数组中的”

问题4 “数组中未被赋值的元素的值自动置'\0'”

问题5 “数组名不是左值”

问题6 数组名“只代表数组首元素的地址”

问题7 辨析“形参和实参可以分别用字符数组名或字符指针变量”

问题8 关于strncpy()函数的功能

问题9 “数组名作函数参数”问题

问题10 怎样称呼字符串

问题11 小气的数组和危险的输入——慎用scanf()函数和gets()函数

问题12 修改字符串文字量

问题13 对strcpy()功能断章取义的描述

第16章 结构体、共用体、枚举及位运算

问题1 成员运算问题

问题4 63、64还是68?——谈谈alignment

问题5 结构体的尺寸问题

问题7 “结构体变量的地址主要用作函数参数”

问题9 “不能引用共用体变量”

问题10 “不能对共用体变量名赋值”

问题12 “‘位运算’是C语言区别于其他高级语言的一个重要特点”

问题13 “参加位运算的对象只能是整型或字符型的数据”

第17章 标准库

问题1 “%c转换说明符用于输入单个字符”引发的潜在BUG

问题3 “double类型应该用‘%lf’输出”

问题5 关于%o格式的错误认识

问题6 “gets()函数是fgets()函数用于stdin的特例”

问题7 “用puts函数输出的字符串中可以包含转义字符”

问题9 “fseek(fp、100L、0)”

第18章 预处理

问题1 “预处理功能是C语言特有的”

问题3 “#define是用一个指定的标识符来代表字符串”

问题4 “预处理器把程序中的注释全部删除”

问题6 #define预处理命令的位置问题

问题7 能否用痰盂盛饭——谈在头文件中定义外部变量

问题8 预处理次序错误

问题9 缺少#include

问题11 使用函数式宏的禁忌

问题12 不合格的宏

问题14 条件编译与if语句

第19章 关于C99

问题1 亡羊补牢还是越错越远——“C99允许在函数中的复合语句中定义变量”

问题2 C99增加了哪些数据类型

问题3 “C99标准不支持一行内写多个语句”

问题6 “C99允许使用常变量”

问题10 “C99允许同类型的共用体变量互相赋值”

第20章 杂七杂八

问题1 “系统描述语言”与“系统编程语言”

问题4 为什么不能用汇编解释C

问题6 “C语言源程序的扩展名为.c”

问题8 为Wirth正名

问题9 “bohra”是谁

问题11 关于ISO

参考文献

后折页

累计评论(1条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部