const_cast用法详解
去const属性。(仅针对于指针和引用)
demo 代码(一)
#include <iostream>
using namespace std;
void demo(const char* p)
{
/* 对指针去掉 const char *p */
char* p1 = const_cast<char*>(p);
p1[0] = 'A';
/* 直接去掉 const 修改 */
const_cast<char*>(p)[0] = 'A';
p1[0] = 'A';
cout << p << endl;
}
void demo(const int p)
{
int q = p;
//const_cast<int>(p) = 888; /* NO! 不能对非指针和引用进行 const 转换 */
cout << p << endl;
}
int main(void)
{
/* 字符串数组 */
char p[] = "12345678";
demo(p); /* 合情合理 */
/* 常量字符串不能去掉 const 修改 */
/* 警告: 在去掉常量限定之前, 保证指针指向的内存能够修改, 不能修改则会引起异常 */
const char* cp = "987654321";
demo(cp);
system("pause");
return 0;
}
结语:
时间: 2020-07-02