我正在尝试将 4 个元素的 char 数组打印为浮点数。编译器(gcc)不允许我写z.s={'3','4','j','k'};
main() 函数,为什么?
#include <stdio.h>
union n{
char s[4];
float x;
};
typedef union n N;
int main(void)
{
N z;
z.s[0]='3';
z.s[1]='4';
z.s[2]='j';
z.s[3]='k';
printf("f=%f\n",z.x);
return 0;
}
上面程序的输出是:f=283135145630880207619489792.000000
,一个远大于浮点变量可以存储的数字;以科学计数法,输出应该是4.1977085E-8
. 那么有什么问题呢?