共用体问题
union un_1{int i; double x;} s1,s2,*p;
s1.x=123.4;s1.i=100; printf("%f\n",s1.x);
书上说,系统将按照用户选择的成员类型(double)来解释用用存储区中存放的数值(100)。
1.上题的输出到底是多少?
2.什么叫按照用户选择的成员类型来解释?
是不是说用double型数据来解释int类型, 这样说准确么??
若是,这是什么意思?两者根本不是一个类型的数据,甚至连占用的内存空间都不一样,怎么解释?
3.若是这样呢:
a. 若是可执行语句改成s1.x=123.4;printf(“%d\n",s1.x);
输出结果是多少?
b. 若是这样呢s1.i=100;printf("%f\n",s1.i); 输出结果又是什么?