An enumerated data type (enum) allows a variable to be assigned one of a list of predefined constant values. An enum defines a new data type with a set of named constants, which can then be used to declare enum variables that may be assigned one of the defined constant values. This helps simplify programs, enhance readability, and catch errors at compile time by restricting variables to a set of predefined values.