¿Se podría imprimir de alguna el nombre de la variable en un enum? Es decir: ¿En el siguiente código podría acceder a los nombres de las ...

Adrian Campos

Adrian Campos

Pregunta
studenthace 5 años

¿Se podría imprimir de alguna el nombre de la variable en un enum?

Es decir: ¿En el siguiente código podría acceder a los nombres de las cartas? (club, diamonds, hearts, spades)

enum deck { club = 0, diamonds = 5, hearts = 10, spades = 15, } card;
2 respuestas
para escribir tu comentario
    Alejandro Urrea Giraldo

    Alejandro Urrea Giraldo

    studenthace 5 años

    El tipo de datos enum sirve para asignar nombres (valores constantes con algún sentido para el programador) a valores numéricos. Sin embargo, más allá de las ventajas que esto genera, los datos que se reciben en una comparación con un tipo de dato enum seguirán siendo numéricos

    Existen otras estructuras de datos, como los array, que servirían para que dado un valor numérico (el índice o posición que ocupa dentro de la estructura), devuelva el nombre almacenado en dicha posición. Sin embargo, los valores asignados a cada posición no pueden ser arbitrarios (como pasaba en enum), y necesariamente tendrían que tener un valor entre el cero (0) y la cantidad de elementos -1 (porque se empieza contando desde cero)

    Le dejo un ejemplo para que vea la diferencia:

    enum_array.png

    Si lo que se busca es que a un nombre específico se le pueda asignar un valor arbitrario, y que se pueda acceder tanto al valor como al nombre, existe una estructura de datos llamada diccionario. Aunque no existe de forma nativa en C, es posible crearla mediante estructuras definidas por el usuario (UDDT o User Defined Data Type) El tema es un poco más complejo, pero a medida que avance en sus estudios podrá comprenderlo mejor.

    En otros lenguajes como python, si existen por defecto los diccionarios. Si conoce el lenguaje, le dejo información al respecto

    https://docs.python.org/3/library/stdtypes.html#mapping-types-dict

    Espero haberle ayudado.

    Wandy Rafael Santana Evangelista

    Wandy Rafael Santana Evangelista

    studenthace 5 años

    Por supuesto que si puedes, mira este ejemplo usando tu logica:

    1.png

    La respuesta es 5 en este caso. Puedes entrar aca y leer un poco al respecto: Click Aqui

Curso de Introducción a C

Curso de Introducción a C

Aprende los fundamentos de C para desarrollar software. Descubre cómo funcionan los programas en C, declara variables, trabaja con tipos de datos y constantes. Ideal para quienes inician en este potente lenguaje de programación.

Curso de Introducción a C
Curso de Introducción a C

Curso de Introducción a C

Aprende los fundamentos de C para desarrollar software. Descubre cómo funcionan los programas en C, declara variables, trabaja con tipos de datos y constantes. Ideal para quienes inician en este potente lenguaje de programación.