Encuentro que la enumeración es similar a una matriz, con los elementos numerados desde 0. Entonces, ¿cuál es la diferencia entre una matriz y una enumeración?
Un Enum es básicamente un grupo de constantes con nombre. Es una alternativa a los parámetros de bandera numerados. (Tampoco tiene que estar numerado desde cero, puede especificar la numeración).
Un Enum podría ser días de la semana, por ejemplo. Un Enum podría departamentos en una empresa: por ejemplo, VENTAS, FACTURACIÓN, RRHH...
Una matriz es una secuencia de ubicaciones de memoria. es una colección Cada elemento de esa colección está indexado por un número. Entonces, al usar ese número, puede recuperar el valor almacenado en esa ubicación. Al igual que el número de página de un libro le permite buscar el contenido de esa página, el índice de una matriz le permite buscar el valor almacenado en esa ubicación.
Por ejemplo, si su empresa tenía buzones de correo físicos numerados para cada departamento (empezando desde cero) y estaba creando un software muy simple para permitir a los usuarios iniciar sesión para verificar cuántas cartas tenían sin recoger, podría optar por almacenarlas en un Matriz de enteros. Donde el índice es el número de casilla de correo y el valor es el número de letras en la casilla.
Luego, para facilitar la programación, puede elegir definir los departamentos como Enums (como se describió anteriormente) de modo que pueda indexar el nombre del departamento. Pero eso sería cada vez más avanzado.
Puede estar confundiendo Enum, con Enumerable, que es un término que se usa en algunos idiomas para describir cualquier tipo de colección que se puede iterar en secuencia (por ejemplo, IEnumerable en C#). Este término no se usa a menudo en C. De ninguna manera es lo mismo que Enum.
Array es una variable que puede contener varios elementos con un índice que comienza en 0, mientras que enum es un tipo de datos definido por el usuario que contiene una lista de miembros para los que se asigna una constante entera que comienza en 0. En el caso de enum, los números que comienzan en 0 no son índices. mientras que en el caso de una matriz son índices. Además, en el caso de enumeración, puede asignar sus propios valores constantes a los miembros que pueden o no comenzar desde 0 y pueden o no estar en una secuencia.
La principal diferencia es que una matriz es un valor y una enumeración es un tipo. Y una diferencia principal es que podemos decir que una matriz es una colección de otros valores (es decir, contiene otros valores, puede iterar a través de ellos o acceder a los individuales por índice), mientras que un valor de enumeración es simplemente un valor atómico. No contiene ningún otro valor.