大佬的回答:
C++ 四种强制转换类型函数
我的疑问和补充:
问:const_cast强制类型转换是是否会把传入的原始指针改变?
答:不会,会产生并返回一个新的去const的指针
#include<iostream>
int main() {
int ary[4] = { 1,2,3,4 };
for (int i = 0; i < 4; i++)
std::cout << ary[i] << "\t";
std::cout << std::endl;
const int*c_ptr = ary;
int *ptr = const_cast<int*>(c_ptr);
//*c_ptr = 10; //error
//const_cast函数不会更改传入的参数而是返回一个去const的指针回来
for (int i = 0; i < 4; i++)
ptr[i] += 1; //pass
// 打印修改后的数据
for (int i = 0; i < 4; i++)
std::cout << ary[i] << "\t";
std::cout << std::endl;
return 0;
}
/* out print
1 2 3 4
2 3 4 5
*/