C中数组和枚举的区别是什么?

C中数组和枚举的区别是什么?,c,arrays,enums,C,Arrays,Enums,我发现enum类似于数组,其中的元素从0开始编号。那么数组和枚举之间的区别是什么呢?主要区别在于数组是值,枚举是类型。一个主要的区别是,我们可以说数组是其他值的集合(也就是说,它包含其他值,您可以遍历它们或通过索引访问单个值),而枚举值只是一个原子值。它不包含任何其他值。枚举基本上是一组命名常量。 它是编号标志参数的替代方案。 (也不必从零开始编号,您可以指定编号。) 例如,枚举可以是一周中的几天。 列举一个公司的部门:如销售、账单、人力资源 数组是一系列内存位置。这是一个收藏。该集合中的每个元

我发现enum类似于数组,其中的元素从0开始编号。那么数组和枚举之间的区别是什么呢?

主要区别在于数组是值,枚举是类型。一个主要的区别是,我们可以说数组是其他值的集合(也就是说,它包含其他值,您可以遍历它们或通过索引访问单个值),而枚举值只是一个原子值。它不包含任何其他值。

枚举基本上是一组命名常量。 它是编号标志参数的替代方案。 (也不必从零开始编号,您可以指定编号。)

例如,枚举可以是一周中的几天。 列举一个公司的部门:如销售、账单、人力资源

数组是一系列内存位置。这是一个收藏。该集合中的每个元素都由一个数字索引。因此,使用该数字可以检索存储在该位置的值。就像书籍中的页码可以让您查找该页面的内容一样,数组上的索引可以让您查找存储在该位置的值

例如,如果您的公司已为每个部门的物理邮箱编号(从零开始): 你创建了一些非常简单的软件,让用户登录以检查他们有多少封信没有收到, 您可以选择将它们存储在整数数组中。其中,索引是邮箱号,值是邮箱中的字母数

然后,为了便于编程,您可以选择将部门定义为枚举(如前所述),这样就可以索引部门名称。但这将越来越先进



您可能会混淆Enum和Enumerable,Enumerable是一些语言中用来描述任何可以按顺序迭代的集合类型的术语(例如C#中的IEnumerable)。这一术语在C中并不常用。它与Enum完全不同。

两者完全不同。数组是一个值,枚举是一个类型。数组是不同值的集合,而枚举值只是一个值。
数组用于使用索引在各种值之间进行迭代,而enum被分配一些原子值并进行迭代,以便我们可以轻松地迭代该类型。

数组是一个变量,可以包含多个索引从0开始的元素,而enum是一个用户定义的数据类型,其中包含一个成员列表从0开始为其分配整数常量。对于枚举,从0开始的数字不是索引,而对于数组,它们是索引。此外,对于enum,您可以将自己的常量值分配给成员,这些成员可能从0开始,也可能不从0开始,也可能不在序列中。

数组的值是通过使用=运算符'例如int a[4]={1,2,3,4}'分配的,enum是用户定义的数据类型,分配方式如下
枚举日{太阳、星期一、星期二、星期三、星期三、星期五、星期六}

。。。你在哪里发现这种相似性的?枚举是预定义的值集(技术上实现为数字0…n),而数组是某种集合。初始化
enum
类型与定义相同信息的数组之间的区别?可能与Read about、about重复。一旦你彻底阅读了这两个不同之处,可能就不言自明了。@haris不是重复的。不同的编程语言。这是C++,这是C。答案是相同的,这是巧合。(从技术上讲,这是一个有意设计的问题,但出于我们的目的,这是一个共同科学)。我相信有一种说法是,我们不能因为答案相同就把问题当作傻瓜来结束。(特别是跨不同语言标记)数组也是一种类型。为什么使用-1?我已经有一段时间没有做C了,但我不认为这是错的?(如果是的话,请纠正我,或者提供澄清建议,我很乐意被提醒。)我没有给你-1,但我可以在你的回答中看到一些问题。1)
必须从零开始编号
->不正确。你可以从你想要/需要的开始。2)
索引列表
->这不好:列表在c语言中有些不同。3) 关于c#is的最后一点考虑OT@LPs: 1. 我的帖子明确指出它不必从零开始编号。2.我同意索引列表可能有误导性,因为这是一个特定的术语。(我记得,虽然不是用C语言,但您可以实现一些东西(通常是链表,而不是索引表)并称之为链表,但据我所知,它不是任何C标准库的一部分)。3.我补充说,在否决票之后,我想一个离题的建议可能会让一些人感到不安谢谢你花时间提出建议。