1
typedef union{
    int a;  
    char b[10];
    float c;     
} Union;

int main()
{
    Union x,y={100};

    x.a=10;
    strcpy(x.b,"hello");
    x.c=21.50;

    printf("%d\t%s\t%f\n",x.a,x.b,x.c);
    printf("%d\t%s\t%f\n",y.a,y.b,y.c);
    return 0;
} 

我有这个程序,我可以在其中制作除“xa”和“yc”之外的所有输出。这两个输出都有些混乱。我确实知道与 int 相比,浮点数以不同的方式存储在内存中,但我仍然无法找出输出的可能原因。

任何帮助将不胜感激。

输出是

110792132                21.500000
100           d          0.000000
4

0 回答 0