对象
本章围绕 C 语言的一个核心概念:对象 (Object)。
在 C 语言里:
- 对象是执行环境中一块用于存储的区域;
- 对象有类型 (Type)、大小 (Size) 与对齐要求 (Alignment requirement);
- 对象在其生存期 (Lifetime) 内,承载某个值 (Value)(或承载不确定值 (Indeterminate value))。
本章的目标是把“对象是什么、如何表示、如何被访问、何时存在”讲清楚,并把它们和声明语法、类型限定符、链接与存储期等规则关联起来。
1. 本章目录
2. 习题
- 给出“对象”“类型”“值”“标识符”四者的区别,并各举一个例子。
- 解释以下代码中:哪些名字是对象?哪些名字是类型?哪些表达式求值会产生未定义行为 (Undefined Behavior, UB)?
c
int main(void) {
int x;
int* p = &x;
return *p;
}1
2
3
4
5
2
3
4
5
- 为什么 C 语言在谈“内存”时,总是先谈“对象表示”,而不是先谈“物理内存布局”?写出你的理解(要求围绕“抽象机器”展开)。