常类型转换
#include<iostream>
#include<string>
using namespace std;
int main()
{
cout << "_____________________________________________" << endl;
int const rmb = 100;
int const*p = &rmb;
cout <<"第一次取值:"<< *p << endl;
int*q=const_cast<int*>(p);
*q = 200;
cout <<"取值:"<< rmb << " " << *p << " " << *q << endl;
cout <<"取地址:"<< &rmb << " " << p << " " << q << endl;
cout << "_____________________________________________" << endl;
volatile int const US = 100;
volatile int const*pm = &US;
int*qc = const_cast<int*>(pm);
*qc = 200;
cout << "取值:" << US << " " << *pm << " " << *qc << endl;
cout << "取地址:" << (void*)&US << " " << (void*)pm << " " << (void*)qc << endl;
system("pause");
}
_____________________________________________
第一次取值:100
取值:100 200 200
取地址:012FFC64 012FFC64 012FFC64
_____________________________________________
取值:200 200 200
取地址:012FFC40 012FFC40 012FFC40
请按任意键继续. . .
重解释类型转换
#include<iostream>
#include<string>
using namespace std;
int main()
{
int *num = new int;
double *dd = (double*)num;
double *d = reinterpret_cast<double*>(&num);
cout << "-----------将整型转换成指针----------" << endl;
int nuw1 = 0x12345678;
char* tt = (char*)&nuw1;
char *t = reinterpret_cast<char*>(&nuw1);
for (int i = 0; i < 4; i++)
{
cout <<"c的方式:"<< showbase << hex << (int)tt[i] << endl;
cout << "c++的方式:" << showbase << hex << (int)t[i] << endl;
cout << endl;
}
cout << endl;
system("pause");
}
-----------将整型转换成指针----------
c的方式:0x78
c++的方式:0x78
c的方式:0x56
c++的方式:0x56
c的方式:0x34
c++的方式:0x34
c的方式:0x12
c++的方式:0x12
请按任意键继续. . .