关于调用union里面成员的问题(栈的问题)

来源:百度知道 编辑:UC知道 时间:2024/06/14 21:10:12
void main()
{
union BC
{
int i;
double j;
}a;
a.j = 20.25;
a.i = 10;
printf("%d\n", a.i);
printf("%f\n", a.i);
printf("%d\n", a.j);
printf("%f\n", a.j);
}
这个打印的结果怎么是
10
0.000000
10
20.250000
???
如果换成
void main()
{
union BC
{
int i;
double j;
}a;
a.j = 20.25;
a.i = 10;
cout<<a.i<<endl;
cout<<a.j<<endl;
}
输出就是
10
20.25

我学的是C++;所以我把你的程序换成了C++程序的形式;
#include<iostream>
using namespace std;

void main()
{
union BC
{
int i;
double j;
}a;
a.j = 20.25;
a.i = 10;
cout<<a.i<<endl;
cout<<a.i<<endl;
cout<<a.j<<endl;
cout<<a.j<<endl;
}
结果是:
10
10
20.25
20.25