新書推薦:
《
身体自愈力:解决内在病因的身体智慧指南
》
售價:NT$
449.0
《
非言语沟通经典入门:影响人际交往的重要力量(第7版)
》
售價:NT$
560.0
《
山西寺观艺术壁画精编卷
》
售價:NT$
7650.0
《
中国摄影 中式摄影的独特魅力
》
售價:NT$
4998.0
《
山西寺观艺术彩塑精编卷
》
售價:NT$
7650.0
《
积极心理学
》
售價:NT$
254.0
《
自由,不是放纵
》
售價:NT$
250.0
《
甲骨文丛书·消逝的光明:欧洲国际史,1919—1933年(套装全2册)
》
售價:NT$
1265.0
|
編輯推薦: |
本书的特色是实现了入门知识、实例演示、范例演练、技术解惑、综合实战5大部分内容的融合,让读者看得懂、用得上、学得会。
一本书的容量,讲解了入门类、范例类和项目实战类三类图书的内容。
丰富的配套资源 学习更高效
440个实例,更多的实践演练机会
837分钟视频讲解,降低学习难度290个拓展实例,真正地举一反三101个技术解惑,破解学习难点
技术讲解范例演练技术解惑贯穿全书,全面掌握C++语言开发
技术讲解:通过145个实例,循序渐进地讲解了C 开发的各个知识点。范例演练:290个拓展范例和5个综合实例,使读者真正具有项目实战能力。技术解惑:把容易混淆的概念单独讲解和剖析,帮助读者绕过学习中的陷阱。
QQ群 网站论坛实现教学互动,形成互帮互学的朋友圈
网站论坛:读者答疑/学习辅导/PPT资源下载读者QQ群:疑惑快速解答/和作者直接交流
|
內容簡介: |
本书由浅入深地讲解了C 的开发技术,并通过具体实例的实现过程演练了各个知识点的具体应用。全书共26章,其中第1~2章讲解了C 技术的基础知识,包括C 的重要特性和搭建开发环境;第3~7章分别讲解了C 语法、变量、常量、流程控制、运算符和表达式等知识,这些内容都是C 开发技术的核心知识;第8~11章分别讲解了输入、输出、函数、指针和复合类型的基本知识,包含了C 开发技术的重点和难点;第12~21章讲解了面向对象、类、继承、派生、多态、内存管理和异常处理等内容;第22~26章通过5个综合实例的实现过程,介绍了C 技术在综合项目中的开发流程。全书内容循序渐进,以范例演练和技术解惑贯穿全书,引领读者全面掌握C 语言开发。本书不但适合C 的初学者,也适合有一定C 基础的读者,还可以作为大专院校相关专业师生的学习用书和培训学校的教材。
|
關於作者: |
南京航天大学通信工程硕士,计算机工程硕士,杰出C 开发工程师和架构师,并且精通Linux底层嵌入式开发技术,曾经从底层硬件到顶层应用独立的开发过一款通信产品。业余期间,曾经在国内主流期刊中发表过多篇通信领域的杰出论文。业余时间乐于技术分享。
|
目錄:
|
目录
第1章 说真的,我们还要学习C 吗 1(视频总计29分钟,实例1个,拓展实例2个,技术解惑2个)1.1 C 概述 21.2 开发工具Visual C 21.2.1 先看Visual C 的基本特点 21.2.2 安装Visual C 31.2.3 Visual C 集成开发环境介绍 51.3 使用Visual Studio 2010 201.4 第一个C 程序 221.5 技术解惑 251.5.1 初学者经常不知道自己该学什么 251.5.2 初学者需要知道的正确观念 25第2章 C 的重要特质分析 26(视频总计27分钟,实例1个,拓展实例2个,技术解惑3个)2.1 什么是面向对象(object-oriented) 272.1.1 什么是OOP 272.1.2 面向对象编程 272.2 分析C 的程序结构 272.2.1 从一段代码看C 程序结构 282.2.2 看C 的文件组织 292.3 必须遵循的编码规范 302.3.1 养成良好的风格 302.3.2 必须使用的注释 302.3.3 代码也需要化妆 312.4 输入输出基础 332.4.1 标准输入与输出对象 332.4.2 一个使用IO库的程序 332.5 算法是程序的灵魂 352.5.1 算法的概念 352.5.2 流程图表示算法 362.5.3 计算机语言表示算法 382.6 技术解惑 382.6.1 C 是面向对象,C是面向过程,那么这个对象和过程是什么意思呢 382.6.2 面向对象和面向过程的区别 382.6.3 学好C 的建议 39第3章 你不一定了解的基础语法 40(视频总计19分钟,实例1个,拓展实例2个,技术解惑5个)3.1 先看标识符 413.1.1 C 中的保留字 413.1.2 需要遵循的命名规则 413.2 最基本的数据类型 433.2.1 数字运算型 433.2.2 逻辑运算型 463.2.3 字符型和字符串 463.3 标准类型库基础 473.3.1 命名空间using声明 483.3.2 标准库的string类 483.3.3 vector类型简介 523.3.4 迭代器简介 553.3.5 bitset类型初步 573.4 技术解惑 603.4.1 C 的标识符长度应当符合min-length max-information原则 603.4.2 字符和字符串有什么区别 603.4.3 C 中string类字符串和C中char*char[]型字符串的差别 603.4.4 C 字符串和C字符串的转换 613.4.5 C 字符串和字符串结束标志 61第4章 你不一定了解的变量和常量 62(视频总计29分钟,实例8个,拓展实例16个,技术解惑6个)4.1 先来看变量 634.1.1 定义变量 634.1.2 声明变量 634.2 变量的作用域 644.2.1 作用域和生存期 644.2.2 作用域限定符 664.2.3 存储类型 674.2.4 C 变量初始化 684.2.5 C 变量命名规范 694.3 再来看常量 704.3.1 什么是常量 704.3.2 常量的分类 704.3.3 常量的应用 734.4 技术解惑 744.4.1 C 常量的命名需要遵循一定的规范吗 744.4.2 在C 程序中,用const定义常量还是用#define 744.4.3 const是个很重要的关键字,在使用时应该注意些什么呢 744.4.4 关于全局变量的初始化,C语言和C 有区别吗 754.4.5 CC 变量在内存中的分布 754.4.6 静态变量的初始化顺序 75第5章 你不一定了解的运算符 76(视频总计29分钟,实例8个,拓展实例16个,技术解惑4个)5.1 先看赋值运算符 775.2 再看算术运算符 785.3 再看比较运算符 795.4 再看逻辑运算符 805.5 单独看 ??运算符 815.6 再看位运算符 825.7 再看求字节数运算符 855.8 再看条件运算符 865.9 再看逗号运算符 865.10 技术解惑 885.10.1 避免运算结果溢出的一个方案 885.10.2 运算符重载的权衡 885.10.3 运算符的优先级和结合性 885.10.4 运算符重载是对已有运算符赋予多重含义 90第6章 说说表达式 91(视频总计19分钟,实例4个,拓展实例8个,技术解惑2个)6.1 何谓表达式 926.1.1 看天下几分表达式的分类 926.1.2 看表达式的书写方式 926.2 说说类型转换 926.2.1 先看隐式转换 936.2.2 再看显式转换 946.3 技术解惑 986.3.1 CC 表达式的限制 986.3.2 表达式的真正功能 98第7章 流程控制语句 99(视频总计42分钟,实例13个,拓展实例26个,技术解惑6个)7.1 最简单的语句和语句块 1007.1.1 最简单的语句 1007.1.2 说说语句块 1007.1.3 最后是语句的总结 1027.2 最常见的顺序结构 1037.3 选择结构 1047.3.1 先看单分支结构语句 1047.3.2 再看双分支结构语句 1057.3.3 还要使用多分支结构语句 1087.4 循环结构详解 1107.4.1 for语句循环 1117.4.2 while语句 1137.4.3 说说do-while语句 1147.5 跳转语句 1157.5.1 何谓break语句 1157.5.2 何谓continue语句 1167.5.3 何谓goto语句 1167.6 技术解惑 1177.6.1 循环中断的问题 1177.6.2 分析循环语句的效率 1177.6.3 几种循环语句的比较 1187.6.4 C 中,for循环该怎么读 1187.6.5 一个C 循环结构嵌套的问题 1187.6.6 break语句和continue语句的区别 119第8章 学习C 的最大障碍指针 120(视频总计42分钟,实例12个,拓展实例24个,技术解惑7个)8.1 说说指针的基本概念 1218.2 定义指针的几种方式 1218.2.1 先定义指针 1218.2.2 再识别指针 1228.3 指针的分类 1238.4 指针初始化 1238.4.1 第一步:指针地址初始化 1248.4.2 第二步:变量地址初始化 1248.4.3 第三步:new分配内存单元 1258.4.4 第四步:malloc函数分配内存单元 1258.5 指针运算 1268.5.1 算数运算 1268.5.2 关系运算 1288.6 指针的指针 1308.7 使用指针 1308.7.1 指针赋值 1318.7.2 *操作符 1318.8 分析指针和引用的关系 1328.9 特殊指针 1358.9.1 先看void型指针 1358.9.2 再看空指针 1368.10 技术解惑 1378.10.1 指针的命名规范 1378.10.2 C 中指针和引用的区别 1388.10.3 变量在语言中的实质 1398.10.4 C 开发如何避免和解决野指针 1398.10.5 常量指针常量和常量引用常量 1418.10.6 指针常量和引用常量的对比 1418.10.7 常量指针和常量引用的对比 141第9章 复合类型 142(视频总计57分钟,实例23个,拓展实例46个,技术解惑7个)9.1 数组基础 1439.1.1 先定义数组 1439.1.2 再看高级数组 1439.1.3 分析数组的完整性 1449.1.4 看维数不全 1449.1.5 看无维数 1449.2 动态数组 1459.2.1 在堆上分配空间的动态数组 1459.2.2 在栈上分配空间的假动态数组 1469.3 数组存储 1489.3.1 列存储 1489.3.2 行存储 1489.4 字符数组 1499.4.1 定义字符数组 1499.4.2 字符数组和字符串指针变量 1509.5 数组初始化 1519.5.1 先看定义时的初始化 1519.5.2 初始化赋值语句 1519.6 指针和数组 1529.6.1 指向数组的指针 1539.6.2 指针数组 1549.7 使用数组 1559.7.1 索引方式 1559.7.2 指针方式 1569.8 枚举 1579.8.1 枚举基础 1579.8.2 使用枚举 1599.9 结构体 1619.9.1 指向结构的指针 1629.9.2 使用结构体 1629.10 联合 1639.11 自定义类型 1649.11.1 先看typedef的作用 1659.11.2 再看typedef的使用 1669.12 技术解惑 1669.12.1 字符数组和字符串的区别 1669.12.2 字符数组和字符串可以相互转换 1679.12.3 静态数组的速度快于动态数组 1679.12.4 Arrays与Vector的区别 1679.12.5 一道关于数组的面试题 1689.12.6 数组名不是指针 1699.12.7 作为一个用户自定义的类型,其所占用的内存空间是多少呢 170第10章 函数 171(视频总计47分钟,实例16个,拓展实例32个,技术解惑8个)10.1 C 函数基础 17210.1.1 先看定义方式 17210.1.2 函数分类 17210.1.3 函数定义实例 17710.2 函数的参数 17910.2.1 何谓形参实参 17910.2.2 使用数组做函数参数 18010.3 返回值和返回语句 18110.4 调用函数 18210.4.1 单独调用 18210.4.2 函数表达式 18310.4.3 实参调用 18310.4.4 参数传递 18410.5 函数递归 18510.6 指向函数的指针 18610.7 将函数作为参数 18710.8 变量的作用域和生存期 18810.8.1 变量作用域 18910.8.2 静态存储变量和动态存储变量 19010.9 函数main和命令行处理 19210.10 技术解惑 19310.10.1 用typedef来定义一个函数指针类型 19310.10.2 const关键字在函数中的作用 19410.10.3 C 函数的内存分配机制 19410.10.4 主函数和子函数的关系 19510.10.5 函数声明和函数定义的区别 19510.10.6 使用全局变量的注意事项 19510.10.7 使用寄存器变量的注意事项 19610.10.8 自动变量的特点 196第11章 输入和输出 197(视频总计49分钟,实例12个,拓展实例24个,技术解惑5个)11.1 iostream对象 19811.1.1 标准的IO接口 19811.1.2 文件IO 20011.1.3 字符串IO 20111.2 输出 20211.2.1 预定义类型输出 20211.2.2 自定义类型输出 20311.3 输入 20411.3.1 预定义类型输入 20411.3.2 自定义类型输入 20511.4 输入输出格式化 20611.4.1 使用ios类成员函数 20611.4.2 使用操纵函数 20711.5 文件 20911.5.1 打开和关闭 20911.5.2 顺序读写 21011.5.3 随机读写 21211.5.4 二进制文件 21311.5.5 检测EOF 21311.6 技术解惑 21511.6.1 输入输出时数的进制问题 21511.6.2 数据间隔 21611.6.3 内存文件映射 21611.6.4 get和put的值的差异 21711.6.5 使用控制符控制输出格式 217第12章 类和封装 218(视频总计37分钟,实例9个,拓展实例18个,技术解惑3个)12.1 类 21912.1.1 先声明类 21912.1.2 再看类的属性 22012.1.3 再看类的方法 22012.1.4 再看构造函数 22112.1.5 再看析构函数 22412.1.6 再看静态成员 22512.1.7 友元 22612.1.8 再看修饰符 22812.1.9 指向类成员的指针 22812.1.10 嵌套类 22912.1.11 类文件的组织 23012.2 对象 23212.2.1 先定义对象 23212.2.2 再使用对象 23312.2.3 再看this指针 23412.3 技术解惑 23612.3.1 浅拷贝和深拷贝 23612.3.2 构造函数的错误认识和正确认识 23712.3.3 保护性析构函数的作用 237第13章 命名空间和作用域 239(视频总计23分钟,实例3个,拓展实例6个,技术解惑4个)13.1 命名空间介绍 24013.2 定义命名空间 24013.3 使用命名空间 24313.3.1 使用域限定符 24313.3.2 使用using指令 24313.3.3 using声明 24413.3.4 别名 24513.4 作用域 24513.4.1 什么是作用域 24613.4.2 作用域的分类 24713.5 技术解惑 24913.5.1 using指令与using声明的比较 24913.5.2 为什么需要命名空间 24913.5.3 命名空间的作用 25013.5.4 在C 中使用这些头文件的方法 250第14章 类的继承和派生 252(视频总计37分钟,实例7个,拓展实例14个,技术解惑5个)14.1 继承与派生的基本概念 25314.2 C 继承机制 25314.3 继承和派生的基本知识 25514.3.1 单重继承、多重继承与继承链 25514.3.2 公有派生和私有派生 25614.3.3 保护成员与保护派生 25614.3.4 友元类和友元函数 25714.4 派生一个类 25714.4.1 先看基类的使用状况 25714.4.2 派生的使用状况 25814.4.3 再看构造函数 26014.4.4 再看析构函数 26214.4.5 使用同名方法 26314.4.6 使用同名属性 26514.5 单重继承和多重继承 26614.5.1 单重继承 26614.5.2 多重继承 26614.5.3 构造函数和析构函数 26714.6 虚继承和虚基类 26914.7 技术解惑 27114.7.1 通过虚继承解决二义性问题 27114.7.2 使用C 虚基类的注意事项 27214.7.3 一个问题 27314.7.4 多重继承的二义性 27314.7.5 允许派生类中的成员名和基类中的成员名相同 275第15章 多态性详解 276(视频总计39分钟,实例11个,拓展实例22个,技术解惑6个)15.1 基本概念 27715.2 先看宏多态 27915.3 虚函数 28015.3.1 虚函数基础 28015.3.2 静态绑定和动态绑定 28115.3.3 纯虚函数 28215.4 抽象类 28315.4.1 什么是抽象类 28315.4.2 抽象类的派生 28415.5 运算符重载 28515.5.1 运算符重载基础 28515.5.2 重载一元运算符 28615.5.3 重载二元运算符 28715.6 函数重载 28815.6.1 函数重载基础 28815.6.2 参数类型不同的重载 28915.7 流的重载 29015.7.1 流插入重载 29015.7.2 流提取重载 29115.8 覆盖 29315.8.1 覆盖函数 29315.8.2 覆盖变量 29415.9 技术解惑 29515.9.1 重载、覆盖和隐藏的区别 29515.9.2 在重载运算符的时候要权衡实施的必要性 29615.9.3 为什么需要函数重载 29615.9.4 重载函数的调用匹配 29715.9.5 另一种虚方法查找方案 29815.9.6 两种重载方法的比较 298第16章 模板的威力 299(视频总计27分钟,实例3个,拓展实例6个,技术解惑4个)16.1 基本概念 30016.2 类模板 30116.2.1 定义类模板 30116.2.2 使用类模板 30216.2.3 类模板的派生 30416.2.4 类模板和模板类的区别 30416.3 函数模板 30516.3.1 定义函数模板 30516.3.2 函数模板示例 30616.3.3 模板实例化 30616.4 模板组合 30716.5 技术解惑 30816.5.1 在函数模板中使用多个类型参数时要避免类型参数的二义性 30816.5.2 函数模板和模板函数的区别 30816.5.3 函数模板和类模板的区别 30916.5.4 仿函数的用处 309第17章 进一步剖析string类 310(视频总计19分钟,实例3个,拓展实例6个,技术解惑3个)17.1 string类的方法 31117.2 string类的运算 31317.2.1 查找函数 31317.2.2 替换函数 31417.2.3 插入函数 31417.2.4 删除函数 31417.2.5 比较函数 31517.2.6 连接函数 31517.2.7 赋值函数 31517.2.8 特性描述函数 31617.2.9 构造函数 31617.2.10 迭代器处理 31617.2.11 其他几种处理函数 31617.3 string类综合应用 31717.3.1 头文件123.h 31817.3.2 类实现文件yinyong.cpp 31817.3.3 测试使用主文件zonghe.cpp 32017.4 技术解惑 32017.4.1 C 字符串和C字符串的转换 32017.4.2 大小和容量函数 32117.4.3 cstring类与string类的比较 321第18章 异常处理 323(视频总计19分钟,实例5个,拓展实例10个,技术解惑13个)18.1 什么是异常处理 32418.2 C 的异常处理机制 32418.2.1 throw抛出异常 32618.2.2 raise抛出异常 32718.2.3 try-catch异常捕获 32818.3 异常处理中的构造和析构 33018.4 C 异常处理机制总结 33118.5 技术解惑 33318.5.1 编写软件的目标 33318.5.2 关于C 的new关键字的异常处理 33318.5.3 C语言异常处理和结构化异常处理有什么区别? 33418.5.4 C 抛出异常不捕获,程序的空间会释放吗? 33418.5.5 throw抛出异常的特点 33518.5.6 关于C 异常处理的心得体会 33518.5.7 慎用catch... 33518.5.8 慎用继承体系里的类作为catch的参数 33618.5.9 对象析构函数被调用的3种场合 33618.5.10 不要在异常处理体系中寄希望于类型转换 33618.5.11 有C 异常处理体系捕获不到的东西吗? 33718.5.12 set_unexpected函数的用处 33718.5.13 不要让异常逃离析构函数 337第19章 内存管理 338(视频总计19分钟,实例5个,拓展实例10个,技术解惑3个)19.1 内存分类 33919.2 栈内存管理 33919.2.1 申请栈内存 33919.2.2 使用栈内存 34019.2.3 释放栈内存 34219.2.4 改变内存大小 34219.3 堆内存管理 34319.3.1 申请堆内存 34319.3.2 使用堆内存 34319.3.3 释放堆内存 34419.3.4 改变大小 34519.4 技术解惑 34619.4.1 堆和栈的区别 34619.4.2 常见的内存错误及其对策 34719.4.3 防止发生溢出错误 348第20章 预处理 349(视频总计24分钟,实例2个,拓展实例4个,技术解惑3个)20.1 什么是预处理 35020.2 C 中常见的预处理 35020.2.1 文件包含 35020.2.2 条件编译 35120.2.3 布局控制 35220.2.4 宏替换 35420.2.5 其他预编译指令 35520.3 分析宏的常见陷阱 35620.4 技术解惑 35720.4.1 预处理的未来 35720.4.2 两者的意义 35820.4.3 一个初学者的问题 358第21章 错误和调试 359(视频总计21分钟,实例2个,拓展实例4个,技术解惑4个)21.1 什么是错误 36021.1.1 Bug的由来 36021.1.2 程序设计方面的解释 36021.2 常见的错误分析 36021.3 程序调试常见错误 36421.4 C 编程中的调试技巧 36921.4.1 调试标记 36921.4.2 运行期间调试标记 36921.4.3 把变量和表达式转换成字符串 37021.4.4 C语言的assert 37021.5 技术解惑 37021.5.1 编写规范易懂的代码 37021.5.2 编写安全可靠的代码 37121.5.3 Visual C 调试技术 37221.5.4 常见的非语法错误 375第22章 初入江湖图书借阅系统的实现过程 376(视频总计19分钟)22.1 项目要求 37722.2 需求分析 37722.3 系统具体实现 37822.3.1 数据结构设计 37822.3.2 系统主文件rent.cpp 37822.3.3 菜单处理文件mainfunction.h 37922.3.4 函数定义文件subfunction.h 37922.3.5 菜单处理实现文件mainfunction.cpp 38022.3.6 功能函数实现文件subfunction.cpp 383第23章 开始闯关(1)C 实现网络应用项目 396(视频总计18分钟)23.1 项目要求 39723.1.1 客户机服务器模式介绍 39723.1.2 客户机服务器模式的运作流程 39823.2 实现原理 39823.2.1 什么是winsocket编程接口 39823.2.2 winsocket中的函数 39823.3 具体实现 40323.3.1 客户端和服务器端的公用文件 40323.3.2 实现服务器端 40523.3.3 实现客户端 406第24章 开始闯关(2)C 实现游戏项目 408(视频总计43分钟)24.1 计算机游戏基础 40924.1.1 游戏的基本流程 40924.1.2 游戏元素 40924.1.3 游戏层次 41024.2 项目分析 41024.2.1 游戏的角色 41024.2.2 游戏界面表现 41124.3 具体实现 41124.3.1 实现相关位图 41124.3.2 变量与函数 41124.3.3 实现全屏 41224.3.4 类初始化 41324.3.5 实现具体显示界面 41324.3.6 信息提示 41524.3.7 和时间段相关的操作 41524.3.8 键盘操作 41624.3.9 我方发射子弹 41724.3.10 敌机出现 41824.3.11 敌机发射子弹 41824.3.12 敌机子弹移动 41924.3.13 火力实现 419第25章 功成名就DirectX实现媒体播放器 421(视频总计37分钟)25.1 DirectX技术基础 42225.1.1 DirectX技术概述 42225.1.2 DirectX的基本结构及组成 42225.1.3 DirectX主要组件介绍 42325.2 系统分析和设计 42525.2.1 功能需求和效果展示 42625.2.2 设计FilterGraph结构 42725.3 实现媒体控制类 42725.3.1 CDXGraph类初始化 42725.3.2 创建Graph滤波器链表 42825.3.3 设计图像窗口 42925.3.4 媒体播放控制 43025.3.5 视频全屏显示 43325.3.6 抓图保存 43325.4 实现播放器主题 43325.4.1 打开一个媒体文件 43325.4.2 渲染媒体文件 43425.4.3 播放媒体文件 43425.4.4 实现控制功能 43525.4.5 实现拖放功能 43825.4.6 实现音量调节功能 43825.4.7 添加背景图片 439第26章 笑傲江湖C 网络视频监控系统 440(视频总计65分钟)26.1 系统分析 44126.2 系统设计 44126.3 系统预览 44126.4 数据库设计 44226.5 选购监控卡 44426.6 具体编程实现 44526.6.1 设计公共模块 44526.6.2 设计主窗体 44926.7 设计管理员登录模块 46026.8 设计监控管理模块 46226.8.1 监控管理技术分析 46226.8.2 编程监控管理 46326.8.3 单元测试处理 46526.9 设计广角自动监控模块 46626.9.1 可行性分析 46626.9.2 编程实现 46726.9.3 单元测试 46926.10 设计视频回放模块 47026.11 分析绚丽界面的实现方法 471
|
|