C语言进阶:重点、难点与疑点解析

C语言进阶:重点、难点与疑点解析

暂无评价综合评分的显示会考虑用户真实性等多项因素,每部作品出现综合评分的时间不定。
16 评价豆瓣读书
免费试读

作品简介

C语言是编程语言中的一朵奇葩,虽已垂垂老矣,但却屹立不倒,诞生了数十年,仍然是最流行的编程语言之一。C语言看似简单,却不易吃透,想要运用好,更是需要积淀。本书是一本修炼C程序设计能力的进阶之作,它没有系统地去讲解C语言的语法和编程方法,而是只对C语言中不容易被初学者理解的重点、难点和疑点进行了细致而深入的解读,揭露了C语言中那些鲜为普通开发者所知的秘密,旨在让读者真正掌握C语言,从而编写出更高质量的C程序代码。

牟海军:资深C语言开发工程师,钟爱C语言,对C语言有较深入的理解和研究,实践经验较为丰富;喜欢研究算法,谙熟各种常见算法和经典算法,颇有心得;擅长嵌入式Linux开发,以及使用QT进行嵌入式开发;活跃于CSDN等技术社区,是CSDN的推荐博客专家。

作品目录

  1. 前言
  2. 为什么要写这本书
  3. 本书读者对象
  4. 如何阅读本书
  5. 勘误和支持
  6. 致谢
  7. 第1章 必须厘清的核心概念
  8. 1.1 堆栈
  9. 1.2 全局变量和局部变量
  10. 1.3 生存期和作用域
  11. 1.4 内部函数和外部函数
  12. 1.5 指针变量
  13. 1.6 指针数组和数组指针
  14. 1.7 指针函数和函数指针
  15. 1.8 传值和传址
  16. 1.9 递归和嵌套
  17. 1.10 结构体
  18. 1.11 共用体
  19. 1.12 枚举
  20. 1.13 位域
  21. 第2章 预处理
  22. 2.1 文件的包含方式
  23. 2.2 宏定义
  24. 2.3 宏定义常见错误解析
  25. 2.4 条件编译指令的使用
  26. 2.5 #pragma指令的使用
  27. 第3章 选择结构和循环结构的程序设计
  28. 3.1 if语句及其易错点解析
  29. 3.2 条件表达式的使用
  30. 3.3 switch语句的使用及注意事项
  31. 3.4 goto语句的使用及注意事项
  32. 3.5 for语句的使用及注意事项
  33. 3.6 while循环与do while循环的使用及区别
  34. 3.7 循环结构中break、continue、goto、return和exit的区别
  35. 第4章 数组
  36. 4.1 一维数组的定义及引用
  37. 4.2 二维数组的定义及引用
  38. 4.3 多维数组的定义及引用
  39. 4.4 字符数组的定义及引用
  40. 4.5 数组作为函数参数的易错点解析
  41. 4.6 动态数组的创建及引用
  42. 第5章 指针
  43. 5.1 不同类型指针之间的区别和联系
  44. 5.2 指针的一般性用法及注意事项
  45. 5.3 指针与地址之间的关系
  46. 5.4 指针与数组之间的关系
  47. 5.5 指针与字符串之间的关系
  48. 5.6 指针与函数之间的关系
  49. 5.7 指针与指针之间的关系
  50. 第6章 数据结构
  51. 6.1 枚举类型的使用及注意事项
  52. 6.2 结构体变量的初始化方法及引用
  53. 6.3 结构体字节对齐详解
  54. 6.4 共用体变量的初始化方法及成员的引用
  55. 6.5 传统链表的实现方法及注意事项
  56. 6.6 颠覆传统链表的实现方法
  57. 第7章 函数
  58. 7.1 函数参数
  59. 7.2 变参函数的实现方法
  60. 7.3 函数指针的使用方法
  61. 7.4 函数之间的调用关系
  62. 7.5 函数的调用方式及返回值
  63. 第8章 文件
  64. 8.1 文件及文件指针
  65. 8.2 EOF和FEOF的区别
  66. 8.3 读写函数的选用原则
  67. 8.4 位置指针对文件的定位
  68. 8.5 文件中的出错检测
  69. 第9章 调试和异常处理
  70. 9.1 assert宏的使用及注意事项
  71. 9.2 如何设计一种灵活的断言
  72. 9.3 如何实现异常处理
  73. 9.4 如何处理段错误
  74. 第10章 陷阱知识点解剖
  75. 10.1 strlen和sizeof的区别
  76. 10.2 const修饰符
  77. 10.3 volatile修饰符
  78. 10.4 void和void*的区别
  79. 10.5 #define和typedef的本质区别
  80. 10.6 条件语句的选用
  81. 10.7 函数realloc、malloc和calloc的区别
  82. 10.8 函数和宏
  83. 10.9 运算符==、=和!=的区别
  84. 10.10 类型转换
  85. 第11章 必须掌握的常用算法
  86. 11.1 时间复杂度
  87. 11.2 冒泡法排序
  88. 11.3 选择法排序
  89. 11.4 快速排序
  90. 11.5 归并排序
  91. 11.6 顺序查找
  92. 11.7 二分查找
  93. 附录 如何养成良好的编程习惯
载入中