c++之强制转换之const_cast和reinterpret_cast

const_cast,用于修改类型的const或volatile属性。

const_cast<type_id> (expression)
该运算符用来修改类型的const或volatile属性。除了const 或volatile修饰之外, type_id和expression的类型是一样的。
一、常量指针被转化成非常量的指针,并且仍然指向原来的对象;
二、常量引用被转换成非常量的引用,并且仍然指向原来的对象;
三、const_cast一般用于修改底指针。如const char *p形式。

reinterpret_cast是C++里的
强制类型转换 符。
       reinterpret_cast<type-id> (expression)
type-id 必须是一个指针、引用、算术类型、函数指针或者成员指针。它可以把一个指针转换成一个整数,也可以把一个整数转换成一个指针(先把一个指针转换成一个整数,再把该整数转换成原类型的指针,还可以得到原先的指针值)。

	int p1 = 1;
	int* p2 = reinterpret_cast<int*>(p1);
	int* p2 = (int*)p1;
	int p3 = reinterpret_cast<int>(p2);
	int p3 = (int)p2;


const_cast的应用:http://blog.csdn.net/hackbuteer1/article/details/6550736,这篇文章值得一看

你可能感兴趣的:(c++之强制转换之const_cast和reinterpret_cast)