《C和指针》提供与C语言编程相关的全面资源和深入讨论。《C和指针》通过对指针的基础知识和高级特性的探讨,帮助程序员把指针的强大功能融入到自己的程序中去。全书共18章,覆盖了数据、语句、操作符和表达式、指针、函数、数组、字符串、结构和联合等几乎所有重要的C编程话题。书中给出了很多编程技巧和提示,每章后面有针对性很强的练习,附录部分则给出了部分练习的解答。
本书提供与c语言编程相关的全面资源和深入讨论。本书通过对指针的基础知识和高级特性的探讨,帮助程序员把指针的强大功能融入到自己的程序中去。
全书共18章,覆盖了数据、语句、操作符和表达式、指针、函数、数组、字符串、结构和联合等几乎所有重要的c编程话题。书中给出了很多编程技巧和提示,每章后面有针对性很强的练习,附录部分则给出了部分练习的解答。
本书适合c语言初学者和初级c程序员阅读,也可作为计算机专业学生学习c语言的参考。
第1~10章第1章 快速上手1.1 简介1.1.1 空白和注释1.1.2 预处理指令1.1.3 main函数1.1.4 read_column_numbers函数1.1.5 rearrange函数1.2 补充说明1.3 编译1.4 总结第2章 基本概念2.1 环境2.1.1 翻译2.1.2 执行2.2 词法规则2.2.1 字符2.2.2 注释2.2.3 自由形式的源代码2.2.4 标识符2.2.5 程序的形式2.3 程序风格2.4 总结第3章 数据3.1 基本数据类型3.1.1 整型家族3.1.2 浮点类型3.1.3 指针3.2 基本声明3.2.1 初始化3.2.2 声明简单数组3.2.3 声明指针3.2.4 隐式声明3.3 typedef3.4 常量3.5 作用域3.5.1 代码块作用域3.5.2 文件作用域3.5.3 原型作用域3.5.4 函数作用域3.6 链接属性3.7 存储类型3.8 static关键字3.9 作用域、存储类型示例3.10 总结第4章 语句4.1 空语句4.2 表达式语句4.3 代码块4.4 if语句4.5 while语句4.5.1 break和continue语句4.5.2 while语句的执行过程4.6 for语句4.7 do语句4.8 switch语句4.8.1 switch中的break语句4.8.2 default子句4.8.3 switch语句的执行过程4.9 goto语句4.10 总结第5章 操作符和表达式5.1 操作符5.1.1 算术操作符5.1.2 移位操作符5.1.3 位操作符5.1.4 赋值5.1.5 单目操作符5.1.6 关系操作符5.1.7 逻辑操作符5.1.8 条件操作符5.1.9 逗号操作符5.1.10 下标引用、函数调用和结构成员5.2 布尔值5.3 左值和右值5.4 表达式求值5.4.1 隐式类型转换5.4.2 算术转换5.4.3 操作符的属性5.4.4 优先级和求值的顺序5.5 总结第6章 指针6.1 内存和地址6.2 值和类型6.3 指针变量的内容6.4 间接访问操作符6.5 未初始化和非法的指针6.6 NULL指针6.7 指针、间接访问和左值6.8 指针、间接访问和变量6.9 指针常量6.10 指针的指针6.11 指针表达式6.12 实例6.13 指针运算6.13.1 算术运算6.13.2 关系运算6.14 总结第7章 函数7.1 函数定义7.2 函数声明7.2.1 原型7.2.2 函数的缺省认定7.3 函数的参数7.4 ADT和黑盒7.5 递归7.5.1 追踪递归函数7.5.2 递归与迭代7.6 可变参数列表7.6.1 stdarg宏7.6.2 可变参数的限制7.7 总结第8章 数组8.1 一维数组8.1.1 数组名8.1.2 下标引用8.1.3 指针与下标8.1.4 指针的效率8.1.5 数组和指针8.1.6 作为函数参数的数组名8.1.7 声明数组参数8.1.8 初始化8.1.9 不完整的初始化8.1.10 自动计算数组长度8.1.11 字符数组的初始化8.2 多维数组8.2.1 存储顺序8.2.2 数组名8.2.3 下标8.2.4 指向数组的指针8.2.5 作为函数参数的多维数组8.2.6 初始化8.2.7 数组长度自动计算8.3 指针数组8.4 总结第9章 字符串、字符和字节9.1 字符串基础9.2 字符串长度9.3 不受限制的字符串函数9.3.1 复制字符串9.3.2 连接字符串9.3.3 函数的返回值9.3.4 字符串比较9.4 长度受限的字符串函数9.5 字符串查找基础9.5.1 查找一个字符9.5.2 查找任何几个字符9.5.3 查找一个子串9.6 高级字符串查找9.6.1 查找一个字符串前缀9.6.2 查找标记9.7 错误信息9.8 字符操作9.8.1 字符分类9.8.2 字符转换9.9 内存操作9.10 总结第10章 结构和联合10.1 结构基础知识10.1.1 结构声明10.1.2 结构成员10.1.3 结构成员的直接访问10.1.4 结构成员的间接访问10.1.5 结构的自引用10.1.6 不完整的声明10.1.7 结构的初始化10.2 结构、指针和成员10.2.1 访问指针10.2.2 访问结构10.2.3 访问结构成员10.2.4 访问嵌套的结构10.2.5 访问指针成员10.3 结构的存储分配10.4 作为函数参数的结构10.5 位段10.6 联合10.6.1 变体记录10.6.2 联合的初始化10.7 总结
第11~18章第11章 动态内存分配11.1 为什么使用动态内存分配11.2 malloc和free11.3 calloc和realloc11.4 使用动态分配的内存11.5 常见的动态内存错误11.6 内存分配实例11.7 总结第12章 使用结构和指针12.1 链表12.2 单链表12.2.1 在单链表中插入12.2.2 其他链表操作12.3 双链表12.3.1 在双链表中插入12.3.2 其他链表操作12.4 总结第13章 高级指针话题13.1 进一步探讨指向指针的指针13.2 高级声明13.3 函数指针13.3.1 回调函数13.3.2 转移表13.4 命令行参数13.4.1 传递命令行参数13.4.2 处理命令行参数13.5 字符串常量13.6 总结第14章 预处理器14.1 预定义符号14.2 #define14.2.1 宏14.2.2 #define替换14.2.3 宏与函数14.2.4 带副作用的宏参数14.2.5 命名约定14.2.6 #undef14.2.7 命令行定义14.3 条件编译14.3.1 是否被定义14.3.2 嵌套指令14.4 文件包含14.4.1 函数库文件包含14.4.2 本地文件包含14.4.3 嵌套文件包含14.5 其他指令14.6 总结第15章 输入/输出函数15.1 错误报告15.2 终止执行15.3 标准I/O函数库15.4 ANSI I/O概念15.4.1 流15.4.2 文件15.4.3 标准I/O常量15.5 流I/O总览15.6 打开流15.7 关闭流15.8 字符I/O15.8.1 字符I/O宏15.8.2 撤销字符I/O15.9 未格式化的行I/O15.10 格式化的行I/O15.10.1 scanf家族15.10.2 scanf格式代码15.10.3 printf家族15.10.4 printf格式代码15.11 二进制I/O15.12 刷新和定位函数15.13 改变缓冲方式15.14 流错误函数15.15 临时文件15.16 文件操纵函数15.17 总结第16章 标准函数库16.1 整型函数16.1.1 算术16.1.2 随机数16.1.3 字符串转换16.2 浮点型函数16.2.1 三角函数16.2.2 双曲函数16.2.3 对数和指数函数16.2.4 浮点表示形式16.2.5 幂16.2.6 底数、顶数、绝对值和余数16.2.7 字符串转换16.3 日期和时间函数16.3.1 处理器时间16.3.2 当天时间16.4 非本地跳转16.4.1 实例16.4.2 何时使用非本地跳转16.5 信号16.5.1 信号名16.5.2 处理信号16.5.3 信号处理函数16.6 打印可变参数列表16.7 执行环境16.7.1 终止执行16.7.2 断言16.7.3 环境16.7.4 执行系统命令16.7.5 排序和查找16.8 locale16.8.1 数值和货币格式16.8.2 字符串和locale16.8.3 改变locale的效果16.9 总结第17章 经典抽象数据类型17.1 内存分配17.2 堆栈17.2.1 堆栈接口17.2.2 实现堆栈17.3 队列17.3.1 队列接口17.3.2 实现队列17.4 树17.4.1 在二叉搜索树中插入17.4.2 从二叉搜索树删除节点17.4.3 在二叉搜索树中查找17.4.4 树的遍历17.4.5 二叉搜索树接口17.4.6 实现二叉搜索树17.5 实现的改进17.5.1 拥有超过一个的堆栈17.5.2 拥有超过一种的类型17.5.3 名字冲突17.5.4 标准函数库的ADT17.6 总结第18章 运行时环境18.1 判断运行时环境18.1.1 测试程序18.1.2 静态变量和初始化18.1.3 堆栈帧18.1.4 寄存器变量18.1.5 外部标识符的长度18.1.6 判断堆栈帧布局18.1.7 表达式的副作用18.2 C和汇编语言的接口18.3 运行时效率18.4 总结
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部1条评论
快来发表一下你的评论吧 !