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

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

Войти
Регистрация
Восстановить пароль
 
den_95
0 / 0 / 0
Регистрация: 24.05.2013
Сообщений: 4
#1

Объединение (union), объяснить выведенное значение - C++

24.05.2013, 22:00. Просмотров 336. Ответов 7
Метки нет (Все метки)

Здравствуйте. При вызове обработчика выдаются значения переменных a,b,c, но когда я удаляю строку data.c = -3; вместо с выдается число 1084709929. Мне нужно объяснить откуда оно берется или как вычисляется, знаю только что оно не случайно и каким-то образом зависит от типа данных переменной с, типа данных переменной b и самой b. Заранее спасибо.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
typedef union { short a; float b; long c;} DataStr1;
 
void __fastcall TForm1::Button3Click(TObject *Sender)
{
   DataStr1 data;
   data.a = 2;
   ShowMessage(IntToStr(data.a));
   data.b = 5.23;
   ShowMessage(FloatToStr(data.b));
//   data.c = -3;
   ShowMessage(IntToStr(data.c));
   ShowMessage(IntToStr(data.a));
   ShowMessage(FloatToStr(data.b));
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2013, 22:00     Объединение (union), объяснить выведенное значение
Посмотрите здесь:
C++ Объединение нескольких массивов в одну область памяти Union и прямое обращение по имени
C++ Объединение (union) "Ученик"
Стартовое значение union C++
Вычислить средний балл оценок каждого студента и напечатать их фамилии и средний балл (объединение (union)) C++
Как записать все выведенное на экран в файл? C++
Объяснить значение строки в программе C++
Объяснить почему переменная принимает данное значение C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,165
Завершенные тесты: 2
24.05.2013, 22:03     Объединение (union), объяснить выведенное значение #2
про юнионы читал в инете?
den_95
0 / 0 / 0
Регистрация: 24.05.2013
Сообщений: 4
24.05.2013, 22:04  [ТС]     Объединение (union), объяснить выведенное значение #3
да, но по данной теме ничего не смог найти
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,165
Завершенные тесты: 2
24.05.2013, 22:18     Объединение (union), объяснить выведенное значение #4
в union инициализировано единовременно может быть только одно поле
den_95
0 / 0 / 0
Регистрация: 24.05.2013
Сообщений: 4
24.05.2013, 22:22  [ТС]     Объединение (union), объяснить выведенное значение #5
про это я знаю, мне нужно объяснить откуда взялось полученное значение
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,165
Завершенные тесты: 2
24.05.2013, 22:25     Объединение (union), объяснить выведенное значение #6
вернее то что лежит во втором поле интерпретируется по правилам третьего поля и выводится
den_95
0 / 0 / 0
Регистрация: 24.05.2013
Сообщений: 4
24.05.2013, 22:30  [ТС]     Объединение (union), объяснить выведенное значение #7
спасибо огромное!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2013, 05:38     Объединение (union), объяснить выведенное значение
Еще ссылки по теме:
C++ Не могу объяснить, откуда получается именно такое значение
C++ Объяснить почему sizeof(arr) всегда возвращает одно и то же значение
Union C++
Union C++
Union C++

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

Или воспользуйтесь поиском по форуму:
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
25.05.2013, 05:38     Объединение (union), объяснить выведенное значение #8
Цитата Сообщение от Кудаив Посмотреть сообщение
в union инициализировано единовременно может быть только одно поле
что за бред?
Yandex
Объявления
25.05.2013, 05:38     Объединение (union), объяснить выведенное значение
Ответ Создать тему
Опции темы

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