啊!一起来学习C/C++吧
- 文章内容如有错误、纰漏希望各位大佬能在评论区指正~
第一章 C语言入门
前言
-
善于学习的人都应该善于总结。 -
本文的编排顺序充分考虑到知识的前后依赖关系,保证在讲解每个新知识点的时候都只用到前面章节讲过的知识。 -
但正因为如此,很多相互关联的知识点被拆散到多个章节中了。 -
我们一章一章地纵向学习过来之后,应该理出几个横切面,把拆散到各章节中的知识点串起来。
一、一阶段总结
1.C语言基本语法
C源代码文件可以包含: #include <头文件> #define宏定义 类型定义(如struct和enum) 全局变量定义和初始化 函数定义(其中有一个是main函数)
函数定义: 函数接口定义,由函数名、参数和返回值类型组成 函数体语句块,由若干条语句套在{}里组成
每条语句开头可以有一个标号,语句有以下几种: 语句块,由若干条语句套在{}里组成 类型定义语句(如struct和enum) 变量定义和初始化语句 表达式语句 if/else语句 do/while语句 while语句 for语句 goto语句 break语句 continue语句 return语句
标号有以下几种: 自定义标号 case标号 default标号
表达式由操作数、运算符和()括号组成,操作数有以下几种: 宏定义 枚举常量 字符常量 整数 浮点数 字符串 变量名 函数名 表达式
已学过的运算符按优先级从高到低的顺序是: 后缀运算符:数组下标[]、函数调用()、结构体取成员. 单目运算符:++、–、&、正号+、负号-、逻辑非! 乘除运算符:*、/、% 加减运算符:+、- 关系运算符:<、>、<=、>= 相等性运算符:==、!= 逻辑与:&& 逻辑或:|| 赋值运算符:=
有些表达式可以取左值也可以取右值,其它表达式则只能取右值,可以取左值的有: 变量名 数组下标,例如a[i+1] 结构体取成员,例如p.x
在C语言中凡是需要程序员起名字的语法元素都遵循标识符的命名规则,包括: 变量名 函数名 形参名 宏定义名 自定义标号 结构体和枚举的类型Tag 结构体和枚举的成员名
2.思维方法与编程思想
- 以概念为中心, “程序和编程语言”
- 组合规则, “表达式”
- Least Surprise, “形参和实参”
- 充分条件与必要条件, “局部变量与全局变量”
- 封装, “if/else语句”
- 布尔逻辑, “布尔代数”
- 递归,“递归”
- 函数式编程, “while语句”
- 迭代 循环语句 与 增量式求解(插入排序)
- 抽象, “数据抽象”
- 数据驱动, “多维数组”
- 分而治之, “归并排序”
- 折半求解, “折半查找”
- 回溯,“用深度优先搜索解迷宫问题”
3.调试方法
- 编译错误、运行时错误与语义错误, “程序的调试”
- 增量式开发, “增量式开发”
- 打印语句与Scaffold, “增量式开发”
- gdb, “gdb”
- DbC与Assertion, “折半查找”
参考书目
[1] 宋劲杉.Linux C编程一站式学习 [2] 鸟哥.鸟哥的 Linux 私房菜:基础学习篇 第四版 [3] K&R.The C Programming Language. [4] Niklaus Wirth. Algorithms + Data Structures = Programs.
|