#include<iostream>
using namespace std;
int main()
{
float a = 12.7;
int * pr=(int *)&a;
cout<<*pr<<", "<<pr<<", "<<&pr<<endl;
return 0;
}
求解怎样让*pr输出12??上面的代码编译器输出的是1095447347
万分感激!!
#include<iostream>
using namespace std;
int main()
{
float a = 12.7;
int * pr=(int *)&a;
cout<<*pr<<", "<<pr<<", "<<&pr<<endl;
return 0;
}
求解怎样让*pr输出12??上面的代码编译器输出的是1095447347
万分感激!!
个人愚见:
float *pr = &a;
cout << (int)(*pr) << ", " << pr << ", " << &pr << endl;
按照楼主的方式int *pr=(int *)&a;因为是直接转换的指针类型,而浮点数和整形存储方式不一样,这样可能永远都不能输出12.
只是我认为。