小编Lak*_*n G的帖子

将float*转换为char*,int*和char*不会产生预期的结果

据我所知,输出应该像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
Run Code Online (Sandbox Code Playgroud)

c pointers casting

1
推荐指数
1
解决办法
215
查看次数

标签 统计

c ×1

casting ×1

pointers ×1