即使我浏览了一些 C 的教程/笔记,我也会遇到“对象”这个术语。我一直想知道对象与程序语言有什么关系。深入一点我可以理解占用一块内存的东西在c中被称为“对象”。
我的问题是我的理解是正确的还是我遗漏了什么。谢谢!
来自C99 标准的草案:
3.14
object
region 执行环境中的数据存储区,其内容可以表示值
所以,你基本上是对的。
笔记:
int object = 42;
struct tm x; /* (x) and (x.tm_year) are objects */
int *arr = malloc(42); if (arr) /* arr[4] is an object */;
至少在 C 标准中,“对象”大致是一块占用连续内存的数据。因此,int、long、float、指针变量都是对象,以及数组或结构或结构数组,或 malloc 内存块中的数据。
不久前,著名的 Chris Torek 在 comp.lang.c 上发表了一篇与此相关的帖子,它可能会对您有所帮助。