结构的字段是否算作变量?数组的元素是否算作变量?

时间:2010-12-15 16:21:50

标签: c arrays variables struct

我知道数组和结构都算作变量,但是它们的字段/元素呢?

我正在尝试编写一些关于处理深层嵌套结构和数组的程序的文档,但不知道我是否可以将这些字段/元素称为变量。

6 个答案:

答案 0 :(得分:1)

数组元素和结构成员不是变量,通过malloc获得的内存也不构成变量。在C中,变量具有名称,范围和存储持续时间。你要找的词是“对象”。

答案 1 :(得分:1)

我认为你不应该将它们称为变量。正如R.正确陈述的那样,“变量”在C中是一个定义明确的术语。你可能意味着什么是对象。对象可能会也可能不会被变量引用,您可以使用它们的地址,并且谈论部分对象是完全合理的,例如谈论作为结构对象一部分的int对象。

答案 2 :(得分:1)

在普通文档中,像“变量”这样的词语来自上下文。其他选项可以是“值”或“基准”/“数据”。只要您对界面的解释清晰且一致,那么您使用的那些内容可能无关紧要。

(标准中的语言和标准的讨论是另外的。在这种情况下,需要更高的精度和许多定义。)

答案 3 :(得分:0)

是的,您可以将它们称为变量,假设它们有所不同。

答案 4 :(得分:0)

C结构的数据成员称为字段。

struct Person {
  int age;
  int height;
};

年龄和身高是此结构的字段。您可以根据结构上的句柄创建一个新的Person,其字段是可变的。

struct Person a;
a.age = 20;      // age and height are variable. You can change them
a.height = 100;

const struct Person b = {20, 100};
b.age = 10; // compiler error. Person b is a const. age/height are not variable.

我希望这会有所帮助。

答案 5 :(得分:0)

结构和数组是数据类型而不是变量。

结构是由其他类型组成的复合类型。

This article可能有助于解释变量是什么。

另一篇文章是here