Moje oczekiwane wyniki dla u6.c to ABC, ale tutaj dostałem CBA, dlaczego tak jest? Czy możesz rzucić trochę światła na to ze szczegółowym wyjaśnieniem?Dlaczego drukuje odwrotny ciąg znaków?
union mediatech
{
int i;
char c[5];
};
int main(){
mediatech u1 = {2}; // 1
mediatech u2 = {'a'}; // 2
mediatech u3 = {2.0}; // 3
mediatech u6 = {'ABC'}; // 6
cout<<"\nu6.i = "<<u6.i<<" u6.c="<<u6.c; // o/p: u6.i=4276803 u6.c=CBA
}
Powiązane: http://stackoverflow.com/a/7459943/24913 –
Należy zauważyć, że ściśle mówiąc jest to niezdefiniowane zachowanie. W twoim oświadczeniu cout czytałeś od członka związku, który nie był tym, do którego ostatnio napisałeś. –