Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Пёс
228 / 76 / 9
Регистрация: 03.02.2013
Сообщений: 311
1

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

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

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

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

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

Восстановить начальное значение числа
из книги "сборник задач по программированию/2-е издание"--Златопольский нужно...

Нулевое начальное значение всех массивов
Каким образом в операторе описания присвоить нулевые начальные значения всем...

Возможно ли изменить начальное значение переменной?
У нас есть код: int main(){ const int val=5; cout<<val; //Какая то...

Сделать цикл где начальное, конечное значение и шаг вводятся с клавиатуры
Условие(смотри вложение) Необходимо составить цикл с постусловием где...

Сделать, чтобы начальное значение srand зависело не от времени, а от тактовой частоты процессора
Нужно сделать так чтобы начальное значение Srand было не от времени а от...

4
DU
1486 / 1132 / 164
Регистрация: 05.12.2011
Сообщений: 2,279
09.02.2013, 22:14 2
если вопрос академический - то я не знаю ответов
если практический, то так хитро и туманно лучше не писать. раз возникают вопросы - то это плохой код.
0
Пёс
228 / 76 / 9
Регистрация: 03.02.2013
Сообщений: 311
10.02.2013, 20:06  [ТС] 3
Ребят, ну что никто не знает ?
0
NoMasters
Псевдослучайный
1909 / 1120 / 90
Регистрация: 13.09.2011
Сообщений: 3,178
10.02.2013, 20:10 4
Если переменная глобальная, то по умолчанию она инициализируется нулём, у emun первый индекс по умолчанию тоже ноль.
0
Croessmah
++Ͻ
14626 / 8377 / 1580
Регистрация: 27.09.2012
Сообщений: 20,578
Записей в блоге: 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;
}
1
10.02.2013, 20:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2013, 20:13

Breakpoint: при попытке вывести элементы класса указатель теряет начальное значение
При попытке вывести элементы класса указатель теряет начальное значение. ...

Как дописать в конец числа цифру при этом обнулив его начальное значение на с++?
Как дописать в конец числа цифру при этом обнулив его начальное значение на...

Диапазон перечислений
Как узнать диапазон перечислений? enum e2 {a = 3, b = 9}; В книге...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru