为什么printf("%f\n",5)输出0.000000

来源:互联网 发布:淘宝宝贝标题是什么 编辑:程序博客网 时间:2024/05/17 03:58

#include<iostream>

#include<stdio.h>

using namespace std;

    int main()    

{

        int xx[2];
int *pp1=xx;
*pp1=5;
//*(pp1+1)=0;
double *pp=reinterpret_cast<double*>(xx);
cout<<"int:"<<*pp1<<" , "<<*(pp1+1)<<endl;
cout<<(*pp)<<endl;
printf("同一块内存区域double 输出:%f\n",*pp);
printf("同一块内存区域int    输出:%f\n",xx[0]);
cout<<pp1<<" , "<<pp1+1<<" , "<<pp1+2<<endl;
cout<<pp<<" , "<<pp+1<<endl;

}

运行结果


int a=5//无论a等于任何数输出都是0.000000;

printf("%f\n",a);

应该是printf函数内部设置当int类型按照double输出时都输出0.000000。

     

0 0
原创粉丝点击