Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Пёс
 Аватар для Пёс
228 / 76 / 4
Регистрация: 03.02.2013
Сообщений: 311
#1

Начальное значение для переменных-перечислений - C++

09.02.2013, 21:59. Просмотров 432. Ответов 4
Метки нет (Все метки)

C++
1
enum {purchasing, selling, noAction} action;
При таком объявлении, начальное значение action в 10 из 10 запусков - purchasing. Суть вопроса: Это закономерное поведение или всего лишь воля судьбы, а на самом деле Action - UB?

И разрешена ли такая инициализация?

C++
1
enum {purchasing, selling, noAction} action = noAction;
Добавлено через 1 час 44 минуты
Эксперты С++, Вы где?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2013, 21:59     Начальное значение для переменных-перечислений
Посмотрите здесь:

Вопрос о разумном использовании структур\перечислений\объединений C++
C++ Значение переменных
C++ Значение переменных
C++ Значение переменных
Значение переменных C++
C++ Обход ограниечения перечислений
Сделать цикл где начальное, конечное значение и шаг вводятся с клавиатуры C++
Возможно ли изменить начальное значение переменной? C++
C++ CUDA C++ не возвращает значение переменных
C++ Программирование с использованием перечислений, структур, объединений и полей бит
Диапазон перечислений C++
Breakpoint: при попытке вывести элементы класса указатель теряет начальное значение C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1479 / 1055 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
09.02.2013, 22:14     Начальное значение для переменных-перечислений #2
если вопрос академический - то я не знаю ответов
если практический, то так хитро и туманно лучше не писать. раз возникают вопросы - то это плохой код.
Пёс
 Аватар для Пёс
228 / 76 / 4
Регистрация: 03.02.2013
Сообщений: 311
10.02.2013, 20:06  [ТС]     Начальное значение для переменных-перечислений #3
Ребят, ну что никто не знает ?
NoMasters
Псевдослучайный
1743 / 1086 / 71
Регистрация: 13.09.2011
Сообщений: 3,108
10.02.2013, 20:10     Начальное значение для переменных-перечислений #4
Если переменная глобальная, то по умолчанию она инициализируется нулём, у emun первый индекс по умолчанию тоже ноль.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12501 / 7063 / 793
Регистрация: 27.09.2012
Сообщений: 17,447
Записей в блоге: 2
Завершенные тесты: 1
10.02.2013, 20:13     Начальное значение для переменных-перечислений #5
Цитата Сообщение от Пёс Посмотреть сообщение
При таком объявлении, начальное значение action в 10 из 10 запусков - purchasing. Суть вопроса: Это закономерное поведение или всего лишь воля судьбы, а на самом деле Action - UB?
глобальные переменные инициализируются нулем, так что action будет 0, даже если у Вас будет перечисление начинаться не с нуля

Добавлено через 1 минуту
Цитата Сообщение от Пёс Посмотреть сообщение
И разрешена ли такая инициализация?
C++
1
enum {purchasing, selling, noAction} action = noAction;
можно и так.

а вот так что попадется в памяти, то и будет.
C++
1
2
3
4
5
#include <iostream>
int main(){
    enum {purchasing=43, selling, noAction} action;
    std::cout<<action<<std::endl;
}
Yandex
Объявления
10.02.2013, 20:13     Начальное значение для переменных-перечислений
Ответ Создать тему
Опции темы

Текущее время: 03:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru