gpt4 book ai didi

c - int * 与 float * 类型

转载 作者:太空狗 更新时间:2023-10-29 15:10:24 25 4
gpt4 key购买 nike

给定以下代码片段:

int *iptr;
float *fptr;
float fval;
fval = 0.0;
fptr = &fval;
iptr = fptr;
printf("%d \n", *iptr);
fval = 1.0;
printf("%d \n", *iptr);

输出是:

0
1065353216

为什么第一个 print 语句至少大致匹配与 *iptr (0.0) 关联的值,而第二个 print 语句却没有?

最佳答案

当你写 printf("%d \n", *iptr); ,你问的是printf解释 iptr 指向的值作为一个整数。

恰好 float 0 的版本由 int 的相同位表示0 的版本.特别是,这些位都是 0 .

但是,任意 float ,例如 1.0将具有不同的位表示(由 IEEE 标准定义),当被解释为 int 时将毫无意义。 .

Wikipedia article解释 float 如何表示为位。

关于c - int * 与 float * 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23007155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com