C/C++实践进阶之道:写给程序员看的编程书
¥
17.7
2.2折
¥
79
全新
库存4件
作者陈黎娟
出版社中国铁道出版社
出版时间2018-05
版次1
装帧其他
货号9787113237585
上书时间2024-12-18
商品详情
- 品相描述:全新
图书标准信息
-
作者
陈黎娟
-
出版社
中国铁道出版社
-
出版时间
2018-05
-
版次
1
-
ISBN
9787113237585
-
定价
79.00元
-
装帧
其他
-
开本
16开
-
纸张
胶版纸
-
页数
452页
-
字数
0.72千字
- 【内容简介】
-
这是一本C/C
语言应用能力进阶的图书,总结了一个典型的学习者第101个小时开始的学习路线和心得,你值得拥有。本书内容包括夯实C语言核心基础、提升你的编程功力、积累专业程序员开发经验、理解C
精髓和以C
为母语五个部分,内容丰富,集开发技巧、成长经验和学习资料于一体,具有很高的实用性和可读性,对于初级程序员和学习编程语言的大学生大有裨益,可以帮助其掌握C/C
语言精髓,提高自己的程序设计水平。
- 【作者简介】
-
陈黎娟:610103197504161642目前就职于美国胜利通讯北京分公司,职位为Senior Firmware Engineer(高级固件工程师)。先后在SunPlus,SST等公司担任工程师和高级架构工程师。在嵌入式系统、嵌入式接口和底层固件开发方面积累了丰富的经验。
- 【目录】
-
第1篇 夯实C语言核心基础
第1章 Hello,C语言
1-1 闭上眼睛细数C语言的特点 2
C语言精巧 2
支持结构化程序编写模型 2
变量和语句是C语言的细胞 3
数学运算和逻辑表达式是C语言的第一个难点 3
函数是C语言赐给我们最有力的武器 3
数组是我们第一次学习组织数据 4
指针是C语言的精华,但它是魔鬼发明的 4
struct是我们临摹世界的画板 4
掌握基本概念的组合才是成为C语言高手的必经之路 4
字符串是指针确认的 5
位运算是C语言底层开发的特色 5
预处理命令是程序开发的脚手架 5
文件是一个序列 5
1-2 从基本概念开始 6
1-3 掌握C语言核心,逐步扩张 8
1-4
C 时代的C语言学习 11
1-5
C :更好的C 12
新的注释模式 13
新的输入/输出方法 13
const的新功能 13
变量的定义更加灵活 13
函数的重载 13
带默认参数的函数 13
变量的引用类型 13
新的内存分配函数new和delete 14
内嵌(inline)函数 14
作用域运算符 14
第2章 建立起程序设计基本概念
2-1 软件与程序 15
2-2 程序与可执行文件 16
2-3 程序与源程序 17
2-4 源程序与程序设计语言 18
2-5 程序设计的基本过程 19
2-6 文件和目录 19
2-7 理解编码上机调试和步骤
22
2-8
C/C 程序员成长经验 23
第一阶段:C语言的学习 23
第二阶段:课程设计和毕业设计 24
第三阶段:硬件开发和学习C 25
第四阶段:中型项目开发经验 25
第五阶段:大型项目开发经验 25
总结个人学习成长的道路 25
因材施教:使用两套教材 26
第3章 在Visual C 中验证C程序
3-1 选择Visual C 的三个理由 27
3-2 调试程序的五个步骤 28
3-3 编写Console应用 32
3-4 跨过调试程序的最初障碍
35
语法错误(Syntax Error) 38
语义错误(Semantic Error) 38
运行错误(BUG) 39
3-5
Visual C 简易使用参考 40
新建文档 40
打开文档 41
查看文档 42
保存文档 44
在打开的文档中搜索文本 45
在已打开的文档中替换文本 45
在磁盘文件中搜索文本 46
常规表达式搜索 46
3-6 从Turbo C到Borland C
47
3-7 理解函数库和头文件 48
第4章 代码基本逻辑:顺序、选择和循环
4-1 流程图 51
4-2 顺序结构 52
【示例4-1】输入三角形的三边长,求三角形面积 52
4-3 选择结构 52
4-3-1
if语句 52
【示例4-2】if语句的基本用法(输入数值,如果大于0,输出“正数”) 53
【示例4-3】利用if-else语句对数值进行正负的判断 54
4-3-2
switch语句 54
【示例4-4】利用switch判断用户输入的日期是星期几 55
【示例4-5】判断输入的日期是星期几(使用break语句) 56
【示例4-6】利用if语句根据成绩范围给出等级 56
4-4 循环结构 57
4-4-1
利用goto语句和if语句构成循环 57
【示例4-7】计算1 2 3 … 100的值 57
4-4-2
while语句 58
【示例4-8】利用while循环语句计算1 2 3 … 100的值 58
4-4-3
do-while语句 58
【示例4-9】利用do-while循环语句来计算1 2 3 … 100的值 59
4-4-4
for语句 59
【示例4-10】小高斯的for循环语句实现方法。 60
【示例4-11】小高斯的for循环语句实现方法之二(省略表达式2的应用举例) 60
【示例4-12】小高斯的for循环语句实现方法之三(省略表达式3的应用举例) 60
【示例4-13】小高斯的for循环语句实现方法之四(省略表达式1和表达式3的
应用举例) 61
【示例4-14】当需要无限循环时,for循环语句表达式全部被省略的应用举例 61
【示例4-15】小高斯的for循环实现方法之五(for语句中的逗号表达式) 61
【示例4-16】读懂奇怪的for循环(for循环语句中的表达式2为特殊表达式时) 61
【示例4-17】利用while循环求满足n2-15n-36>0的最小整数 62
4-4-5
break语句 63
【示例4-18】演示break语句的应用:计算1 2 3 … 100的值 63
4-4-6
continue语句 63
【示例4-19】演示continue语句的应用:计算1到100的偶数之和 63
4-5 本章综合实例 64
4-5-1
综合实例1:求某整数段区间中的素数,并输出 64
4-5-2
综合实例2:根据用户输入的年份判断年份是否为闰年 66
第5章 加强对函数的理解
5-1 函数的引入 67
【示例5-1】求从1加到100的值 67
【示例5-2】求从1加到n的值 68
【示例5-3】求从1加到n的值(高斯算法) 69
5-2 函数的基本概念 69
5-3 库函数 70
5-4 函数的嵌套调用 71
【示例5-4】在max3函数中实现嵌套调用 71
5-5 代码封装:模块化程序设计的起步 71
5-6 接口/实现思想的第一次体现 72
5-7 总结一下:函数帮你编写更好的代码 72
5-8 对比Pascal语言和C语言中函数使用的差异 74
第6章 总结:快速掌握C语言基础知识
6-1 再次Understand
C 76
6-2 把基础知识串起来 77
6-3 综合实例1:打印Fibonacci数列 78
6-4 综合实例2:把Fibonacci数列中的素数找出来 79
6-5 综合案例3:在Fibonacci数列中加入数组的应用 80
6-6 最后的综合性代码 81
6-7 成为C程序员你还需要知道的事情
82
6-8 三小时你可以学会FORTRAN
85
第2篇 提升你的编程功力
第7章 逐步写出大程序
7-1 准备案例1:闰年的判断 88
7-2 准备案例2:这一天是星期几 89
7-3 更高要求:万年历的编写
91
7-4 再完善一下:打印某年日历
94
7-5 总结与思考:程序成长与模块化 96
第8章 自己动手编写小工具
8-1
DIR命令今犹在 97
8-2
DOS版DIR命令 98
8-3
Windows版本的DIR 100
8-4 工具编写总结和练习 103
8-5 继续学习和提高 104
第9章 学会组织自己的代码
9-1 解决问题的基本方法和C程序的基本结构 105
9-2 用Project管理自己的代码 108
9-3 为自己的代码扩充功能
110
9-4 养成一些编码的好习惯
111
第10章 读源代码,逐步体会算法的力量
10-1
读函数源代码,学技巧 116
10-2
体会算法的力量 118
【示例10-1】判断一个自然数n是否是素数 119
10-3
算法的三重境界 121
【示例10-2】写一个函数计算当参数为n(n很大)时的值1-2 3-4 5-6 7-… n 121
【示例10-3】在一个很小的内存空间中,将北京某电话局的8位电话号码排序。号码在
10000个以内 122
10-4
那些C语言必须调试的陷阱 123
第3篇 积累专业程序员的开发经验
第11章 烦琐但很重要的变量和类型
11-1
计算机是如何存储变量的 126
11-2
确保每个对象在使用前已被初始化 131
11-3
局部变量和全局变量的差别 133
11-3-1
首先理解函数中的局部变量 134
11-3-2
其次理解函数外的全局变量 135
11-3-3
掌握变量在内存中的存储方式 136
11-4
掌握变量定义的位置与时机 138
11-5
引用难道只是别人的替身 140
第12章 理解数组和指针
12-1
理解指针的本质 143
12-1-1
指针变量和变量的指针 143
12-1-2
空指针和void指针 145
12-1-3
const修饰指针 146
12-2
论数组和指针的等价性 147
12-3
再论数组和指针的差异性 149
12-3-1
字符串数组与字符指针的区别 149
12-3-2
当编译器强行把指针和数组混合 151
12-4
充满疑惑的数组指针和指针数组 152
第13章 常见更要谨慎的字符和字符串
13-1
关于字符编码的讨论 155
13-2
请牢记字符串结束标志为‘\0’ 157
13-3
请务必小心使用memcpy()系列函数 159
【示例13-1】POD对象的复制
160
13-4
正确使用字符串处理函数 161
第14章 表达式和语句中的陷阱
14-1
运算符引发的混乱 164
14-2
表达式求值顺序不要想当然 167
14-3
switch-case语句的陷阱 170
14-3-1
正确使用break语句 171
14-3-2
case标号和default标号的正确使用 173
14-4
a || b和a&&b的陷阱 174
14-4-1
陷阱一:短路求值 175
【示例14-1】没想清逻辑,代码死循环 175
14-4-2
陷阱二:逻辑运算混淆使用 176
14-5
“悬挂”else引起的问题 177
第15章 函数的秘密
15-1
禁止函数返回局部变量的引用 180
15-2
函数传值、传指针及传引用的效率分析 183
15-3
内联函数会像宏一样替换吗 188
15-4
函数重载需考虑什么 191
15-4-1
准确理解函数重载 191
【示例15-1】实现一个打印函数,既可打印int类型,也可打印string类型 191
15-4-2
为什么引入函数重载 192
15-4-3
如何处理函数重载 192
15-5
不要让main返回void 195
15-5-1
理解main函数的定义形式 195
15-5-2
main函数的返回值作用 196
15-5-3
void main()形式函数的风险隐患 197
15-5-4 “好坏难定”的准则 197
15-6
尽量拒绝使用变参函数 198
【示例15-2】实现一个支持std::string的printf 199
15-7
为何降低函数的圈复杂度 202
15-7-1
提炼函数的方法 203
15-7-2
以明确函数取代参数 204
第16章
正确使用预处理
16-1
使用#define定义字面值和伪函数 206
16-1-1
简单宏定义(字面值) 206
16-1-2
#define和const定义的恒值常量对比 207
16-1-3
带参数的宏定义(伪函数) 208
16-1-4
带参数的宏和函数的区别 208
16-1-5
引入宏的优点 209
16-1-6
宏定义和命名空间的关系 209
16-2
#define的使用陷阱 210
16-2-1
由操作符优先级引起的问题 210
16-2-2
使用宏定义,不允许参数发生变化 211
16-2-3
使用do{}while(false)将宏定义包含的多条表达式放到大括号中 211
16-2-4
关于...的使用 212
16-2-5
消除多余的分号 213
16-3
防止重复包含头文件 214
【示例16-1】头文件重复包含bug 214
16-3-1
解决方案之一:#ifndef方式 215
16-3-2
解决方案之二:#pragma once 215
16-3-3
#pragma once与 #ifndef的区别 216
16-4
assert的副作用 216
【示例16-2】断言出现bug 217
16-5
多学一点,关于#和##的讨论 219
16-5-1
#让字符串巧妙用在宏定义中 219
16-5-2
##让宏定义像函数一样输入参数 220
16-5-3
#与##使用的陷阱 221
第17章 非绝对禁止者,皆可使用
17-1
表示语句结束的分号的思考 222
17-2
goto语句真的一无是处吗 224
17-2-1
观点一:goto语句是有害的 225
【示例17-1】使用goto语句执行数组元素的交换顺序 225
17-2-2
观点二:某些情况下支持使用goto语句 226
17-3
条件操作符和逗号操作符 229
17-3-1
理解条件操作符并用好它 229
17-3-2
让逗号操作符派上用场 230
17-4
和魔鬼数字说再见 230
17-4-1
魔鬼数字带来的麻烦 230
17-4-2
给魔鬼数字起一个名字 231
17-5
关于循环语句的变化 232
17-5-1
新旧标准中for语句的变化 232
17-5-2
巧用do循环宏定义 233
17-5-3
循环语句的效率 234
第18章 程序员应该知道的指针技术
18-1
深刻理解void和void* 236
18-2
防微杜渐,拒绝野指针 239
18-2-1
野指针产生的原因 240
18-2-2
预防野指针的策略 241
18-3 “臭名昭著”的空指针到底是什么 242
18-3-1
怎样在程序中获得一个空指针 243
18-3-2
使用“if(p)”
点击展开
点击收起
— 没有更多了 —
以下为对购买帮助不大的评价