《程序设计基础》


1.1.2 程序流程图

p8 表 1-1

1.2.2 程序设计方法

结构化程序设计(Structured Programming, SP):面向过程

面向对象程序设计(Object Oriented Programming, OOP)

1.4.2 C++ 源程序的组成

编译预处理命令:文件包含,宏定义,条件编译

可以在函数内部 using namespace

1.4.3 C++ 源程序的组成元素

标识符的首字符必须是字母或下划线

p13 表 1-4 C++ 的关键字

2.1.1 数制

十进制 decimal
二进制 binary
八进制 octal(后缀为 Q。为了防止 O\(0\) 混淆)
十六进制 hexadecimal

2.1.2 不同数制之间的转换

小数部分:乘基取整法:不断将小数部分 \(\times2\)(舍去整数部分),将每次得到整数部分(\(0\)\(1\))从左到右排列
容易根据 \(2^{-i}\times2^{i}=1\) 验证正确性

注:不是所有的十进制小数都能用二进制小数精确表示

2.2.2 整数的表示方法

以二进制表示整数

无符号整数:编码与数值相同
原码:最高位表示符号(正数为 \(0\)),其余位存储绝对值
补码:正数的补码为原码,负数的补码为绝对值的原码按位取反再 \(+1\)

补码便于加减的本质是模 \(2\) 的次幂

2.3 实数在计算机中的表示

近似成有限小数(二进制)表示实数

浮点数 \(sM\times2^{E}\)\(s\in\{0,1\}\) 为数值的符号,\(M\in\mathbb{N}\) 为数值的精度,称为位数,指数 \(E\in\mathbb{Z}\) 称为阶码

IEEE754 国际标准:\(M\) 采用原码表示,最高非零位为 \(2^{0}\),存储时只存储小数点后的部分 \(M'\)\(E\) 采用移码表示(在真值上加一个偏置值)

对于 \(64\) 位浮点数 double\(s\)\(1\) 位(正数为 \(0\)),\(M'\)\(52\) 位,\(E_{\text{移}}\)\(11\) 位(偏置值 \(2^{10}-1\))。最值:\(\pm1.7\times10^{208}\)\(15\) 位有效数字)

【例 2-18】

\((-2.75)_{10}=(-10.11)_{2}=(-1.011\times2^{1})_{2}\)

\(s=1\)
\(M=1.011\)\(M'\)\(0110\cdots0\)
\(E_{\text{真}}=1,E_{\text{移}}=1024\),存储为 \(10000000000\)

2.5 C++ 中的基本数据类型和转义字符

p28 表 2-7 C++ 的转义字符

2.6.1 常量

注:为了识别字符串的结束位置,C++ 会在末尾自动添加 '\0'(ASCII 为 \(0\)),所以存储长度总是比实际长度多 \(1\)

2.8.3 复合语句和空语句

复合语句:用 {} 括起来,语法上是一条语句(注:复合语句中声明的变量仅在该复合语句内可用)

空语句:仅由 ; 构成

2.9.1 ++ 和 --

a+++b 编译器会解释为 (a++)+b

2.10.1 运算符的优先级和结合性

右结合性:按从右到左的顺序进行运算(只有单目运算符、条件运算符和赋值运算符)

p46 表 2-11 运算符及其优先级和结合性

2.10.3 表达式的求值顺序

&& || ? : , 的求值顺序是从左到右,其余没有规定

I/O 流的常用控制符和 ASCII 编码表

163mail

4.2.2 C++ 提供的一维数组或二维数组存储二维数据

2. 二维数组的初始化

int Dir[][2] = {{0,1},{1,0},{0,-1},{-1,0}}

3.4.2 用 C++ 提供的 switch 语句变成解决多路选择问题

case 后的常量表达式只能是整形、字符型或枚举型

4.7 C++ 中的枚举数据类型

p90

5.6 多文件结构

p105

5.7 变量和函数的作用域与生存期

p109

6.1 数据存储的基本原理

内存空间分为四个区域:

  • 代码区
  • 全局数据区
  • 堆区:存放动态数据
  • 栈区:存放局部数据

6.2 地址与 C++ 中的指针

数组名是一个指针常量

6.2.2 指针变量的初始化

\(64\) 位系统中,内存地址以 \(64\) 位二进制数表示,所以指针变量无论是什么类型,总是占用 \(8\) 个字节

6.3.4 指向行的指针变量

int a[N][2];
int (*p)[2];
p = a+i; // p 指向第 i 行

a[i][j] 也可写作 *(a[i]+j)*(*(a+i)+j)

6.5 动态使用内存空间

int a = new int[N](0);
delete []a;

6.6 二级指针

p133

6.7 指针与函数

6. 实参是函数的首地址

p140

posted @ 2023-10-11 22:38  ft61  阅读(70)  评论(1编辑  收藏  举报