一、程序设计语言的基本成分
1.1 数据成分
数据类型的作用
- 便于为数据合理分配存储单元
- 便于对参与表达式计算的数据对象进行检查
- 便于规定数据对象的取值范围及能够进行的运算
常量与变量
| 特性 | 常量 | 变量 |
|---|---|---|
| 可修改性 | 不可以修改 | 可以修改 |
| 存储单元 | 没有分配存储单元 | 有分配存储单元 |
1.2 运算成分
逻辑运算
| 运算符 | 名称 | 运算规则 | 短路运算特性 |
|---|---|---|---|
&& |
逻辑与 | 两边同时为真才为真,有一个假则结果为假 | 左边为假则表达式结果为假,右边不执行 |
|| |
逻辑或 | 两边同时为假才为假,有一个真则结果为真 | 左边为真则表达式结果为真,右边不执行 |
! |
逻辑非 | 真变假,假变真 | 无 |
运算符结合性
- 右结合:从右向左算
- 例如:
!3<2,先算3<2为假,然后!假,结果为真 - 例如:
x=1, y=2, z=3,然后x=y=z- 先算
y=z,此时y的值为 3 - 再算
x=y,结果x、y、z的值都为 3
- 先算
1.3 控制成分
程序的三种基本控制结构:
- 顺序结构:按语句先后顺序依次执行
- 选择结构(分支结构):根据条件判断选择执行路径
- 循环结构(重复结构):根据条件重复执行某段代码
二、函数调用
2.1 传值调用(Call by Value)
- 定义:将实参的值传递给形参
- 实参类型:实参可以是变量、常量和表达式
- 特点:
- 不可以实现形参和实参间双向传递数据的效果
- 形参的修改不会影响实参
2.2 传引用(地址)调用(Call by Reference)
- 定义:将实参的地址传递给形参
- 实参限制:形参必须有地址,实参不能是常量(值)、表达式
- 特点:
- 可以实现形参和实参间双向传递数据的效果
- 即改变形参的值同时也改变了实参的值
2.3 传值调用与传地址调用对比
| 特性 | 传值调用 | 传引用(地址)调用 |
|---|---|---|
| 传递内容 | 实参的值 | 实参的地址 |
| 实参类型 | 变量、常量、表达式 | 变量(必须有地址) |
| 双向传递 | 不可以 | 可以 |
| 形参修改影响实参 | 不影响 | 影响 |
三、编译程序与解释程序对比
| 特性 | 编译器 | 解释器 |
|---|---|---|
| 目标程序 | 生成独立保存的目标程序 | 不生成独立的目标程序 |
| 运行方式 | 机器上运行与源程序等价的目标程序 | 解释程序和源程序参与运行过程 |
| 运行后编译器/解释器 | 编译程序和源程序都不再参与目标程序的运行过程 | 解释程序和源程序要参与到程序的运行过程中 |
| 处理阶段 | 词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成 | 词法分析、语法分析、语义分析 |
四、关键考点速记
- 数据类型作用:分配存储单元、检查数据对象、规定取值范围和运算
- 常量 vs 变量:常量不可修改、不分配存储单元;变量可修改、分配存储单元
- 逻辑与短路:左边为假则整个表达式为假,右边不执行
- 逻辑或短路:左边为真则整个表达式为真,右边不执行
- 逻辑非右结合:从右向左计算
- 三种控制结构:顺序、选择、循环
- 传值调用:传值,实参可以是常量/变量/表达式,单向传递
- 传地址调用:传地址,实参必须是变量,双向传递
- 编译器:生成独立目标程序,不参与运行过程
- 解释器:不生成独立目标程序,参与运行过程
评论