C语言中整型变量用实型输出以及实型变量用整型输出结果会怎么样?
C语言中整型变量用实型输出以及实型变量用整型输出结果会怎么样?会不会直接输出0.000000和0我写了个:main(){inta=4;floatb=4.3;printf(...
C语言中整型变量用实型输出以及实型变量用整型输出结果会怎么样?
会不会直接输出0.000000和0
我写了个:
main()
{
int a=4;
float b=4.3;
printf("int:%d\tfloat:%f\n",a,a);
printf("float:%f\tint:%d",b,b);
}
结果是:
int:4 float:819.200202
float:4.300000 int:0
能帮我分析一下吗? 展开
会不会直接输出0.000000和0
我写了个:
main()
{
int a=4;
float b=4.3;
printf("int:%d\tfloat:%f\n",a,a);
printf("float:%f\tint:%d",b,b);
}
结果是:
int:4 float:819.200202
float:4.300000 int:0
能帮我分析一下吗? 展开
2个回答
展开全部
你这里首先一个严重问题就是不管什么环境下变长参数接受float和int的长度都不一样
你这里看上去是16位的,int是2字节 float是4字节
第一个printf 除格式需要6字节的参数你只提供了4字节,%f的高2字节是不缺定的值,所以打印出来的float也是不确定的(当然你每次执行这个程序可能会一样,但是改一下调用顺序就不行了)
第二个要求6个字节你给了8个字节,另外第二个printf没理由是0... 16位下应该是39322
你这里看上去是16位的,int是2字节 float是4字节
第一个printf 除格式需要6字节的参数你只提供了4字节,%f的高2字节是不缺定的值,所以打印出来的float也是不确定的(当然你每次执行这个程序可能会一样,但是改一下调用顺序就不行了)
第二个要求6个字节你给了8个字节,另外第二个printf没理由是0... 16位下应该是39322
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询