Если первое значение переменной enum не инициализировано, то компилятор C автоматически присваивает значение 0. Компилятор продолжает увеличивать значение предыдущей переменной enum на 1.
Например:
enum months{jan,feb,mar}
Объяснение: Значение jan будет 0, фев будет 1, март будет 2.
enum months{jan=123,feb=999,mar}
Объяснение: Значение jan будет 123, фев будет 999, март будет1000.
enum months{jan='a',feb='s',mar}
Пояснение: значение jan будет 'a', feb будет 's', mar будет 't'.