#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。