Я только начал свои поиски профсоюзов, когда обнаружил кое-что странное.
Если я запущу эту программу
#include <iostream>
using namespace std;
union myun{
public:
int x;
char c;
};
int main()
{
myun y;
//y.x=65;
y.c='B';
cout<<y.x;
}
На выходе было какое-то мусорное значение, которое не изменится, если изменить значение y.c. Далее я сделал это
#include <iostream>
using namespace std;
union myun{
public:
int x;
char c;
};
int main()
{
myun y;
y.x=65;
y.c='B';
cout<<y.x;
}
Результат, как и ожидалось, будет 66, потому что y.c='B' заменяет 65 своим значением ASCII (66). Кто-нибудь может объяснить первый случай?