0.1 课程简介
- 教程特点:零基础适用、示例丰富
- 课程结构:第0章介绍c++编程的相关概念及软件;第1章介绍c++基础,后面章节深入研究;每章都有一个主题
- 目标
- 涵盖一般的编程主题:编程风格、常见陷阱、调试、好/坏的编程实践、测试
- 提供大量示例(尽量不在示例中省略内容、引入未解释过的概念)
- 提供练习题及解答
- 享受编程的乐趣
- 充分利用教程
- 手敲示例并自己编译,从而熟悉常见的编译警告和错误;思考每行代码的作用
- 自己发现并解决错误;重视debugger的学习和使用
- 尝试修改示例程序并观察结果
- 花时间做测验
- 使用学到的概念编写程序
- 遇到不懂的概念可以:读评论/浏览后续章节/使用搜索引擎/使用AI/网上提问/先跳过
0.2 编程语言简介
- 计算机只能理解有限的命令集,并且必须被明确告知要做什么
- 机器语言
- cpu可以直接理解的有限指令集成为机器码/机器语言/指令集
- 每条机器指令都是由0和1组成的序列,每个0和1称为一个二进制位;组成单个机器指令的位数是变化的:一些cpu处理的机器指令总是32位长,而另一些cpu(如x86/x64)处理的机器指令可以是可变长度
- 每组二进制数字都被cpu解释为一条命令,以完成一项具体的任务;然而不同cpu有不同的指令集,为某种cpu编写的指令不能在另一种cpu(不具有相同的指令集)上使用,这就意味着程序不能移植到不同类型的系统中,必须重新编写
- 汇编语言
- 汇编语言中,每条指令都用一个缩写词来标识,并且可以使用指令名和其他编号
- cpu不能直接理解汇编语言,因此汇编程序必须先被翻译成机器语言(通过一个叫做汇编器的程序来完成的),然后才能被计算机执行;汇编程序速度很快
- 缺点
- 汇编程序所需指令太多,虽然单条指令可读性较好,但是理解整个程序仍然困难
- 可移植性仍然不好,用汇编语言为一个cpu编写的程序很可能无法在使用不同指令集的硬件上运行
- 高级语言