Тъкмо започвах търсенето си със синдикатите, когато открих нещо странно
Ако пусна тази програма
#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). Някой може ли да обясни първия случай?