gpt4 book ai didi

将 float* 转换为 char*、int* 和 char* 未产生预期结果

转载 作者:太空宇宙 更新时间:2023-11-04 00:40:09 24 4
gpt4 key购买 nike

据我所知,输出应该是 3.14、3.14、3.14 和 256,256,256,对吗?但这会产生不同的输出。谁能指导我解决这个问题并告诉我为什么会这样?

    main()
{
float a = 3.14;
int b = 256;
char *p, *p1;
p = (char *) &a;
p1 = (char *) &b;
printf("\nFLOAT:");
printf("\nValue of *p=%f",*p);
printf("\nValue of a=%f",a);
printf("\nValue of *p=%f",*p);
printf("\n\nINTEGER:");
printf("\nValue of *p1=%d",*p1);
printf("\nValue of b=%d",b);
printf("\nValue of *p1=%d",*p1);
}

Output:
FLOAT:
Value of *p=0.000000
Value of a=3.140000
Value of *p=3.140001

INTEGER:
Value of *p1=0
Value of b=256
Value of *p1=0

最佳答案

表达式 *p 的类型为 char。格式说明符 %f 需要一个类型为 float 的参数。将错误类型的参数传递给可变参数函数(如 printf)会调用未定义的行为。

关于将 float* 转换为 char*、int* 和 char* 未产生预期结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12031370/

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